Excitation vector generator, speech coder and speech decoder

ABSTRACT

An excitation vector generator includes an input vector provider configured to provide an input vector having at least one pulse, each pulse having a pre-determined position and a respective polarity. An arranger is configured to arrange a waveform in accordance with the position and the polarity of the pulse. A shape of the waveform comprises a pulse-like shape and a length of the waveform is shorter than a length of a sub-frame.

This application is a continuation of U.S. patent application Ser. No.09/849,398, filed May 7, 2001, pending, which is a divisional of U.S.patent application Ser. No. 09/101,186, filed Jul. 6, 1998, now U.S.Pat. No. 6,453,288, which issued on Sep. 17, 2002, which was the U.S.National Stage Application No. PCT/JP97/04033, filed Nov. 6, 1997, thecontents of which are expressly incorporated by reference herein intheir entireties. The International Application was not published inEnglish.

TECHNICAL FIELD

The present invention relates to an excitation vector generator capableof obtaining a high-quality synthesized speech, and a speech coder and aspeech decoder which can code and decode a high-quality speech signal ata low bit rate

BACKGROUND ART

A CELP (Code Excited Linear Prediction) type speech coder executeslinear prediction for each of frames obtained by segmenting a speech ata given time, and codes predictive residuals (excitation signals)resulting from the frame-by-frame linear prediction, using an adaptivecodebook having old excitation vectors stored therein and a randomcodebook which has a plurality of random code vectors stored therein.For instance, “Code-Excited Linear Prediction (CELP): High-QualitySpeech at Very Low Bit Rate,” M. R. Schroeder, Proc. ICASSP '85, pp.937-940 discloses a CELP type speech coder.

FIG. 1 illustrates the schematic structure of a CELP type speech coder.The CELP type speech coder separates vocal information into excitationinformation and vocal tract information and codes them. With regard tothe vocal tract information, an input speech signal 10 is input to afilter coefficients analysis section 11 for linear prediction and linearpredictive coefficients (LPCs) are coded by a filter coefficientsquantization section 12. Supplying the linear predictive coefficients toa synthesis filter 13 allows vocal tract information to be added toexcitation information in the synthesis filter 13. With regard to theexcitation information, excitation vector search in an adaptive codebook14 and a random codebook 15 is carried out for each segment obtained byfurther segmenting a frame (called subframe). The search in the adaptivecodebook 14 and the search in the random codebook 15 are processes ofdetermining the code number and gain (pitch gain) of an adaptive codevector, which minimizes coding distortion in an equation 1, and the codenumber and gain (random code gain) of a random code vector.∥ν−(gaHp+gcHc)∥²  (1)

ν: speech signal (vector)

H: impulse response convolution matrix of the $H = \begin{bmatrix}{h(0)} & 0 & \cdots & \cdots & 0 & 0 \\{h(1)} & {h(0)} & 0 & \cdots & 0 & 0 \\{h(2)} & {h(1)} & {h(0)} & 0 & 0 & 0 \\\vdots & \vdots & \vdots & ⋰ & 0 & 0 \\\vdots & \vdots & \vdots & ⋰ & {h(0)} & 0 \\{h( {L - 1} )} & \cdots & \cdots & \cdots & {h(1)} & {h(0)}\end{bmatrix}$synthesis filter.where

h: impulse response (vector) of the synthesis filter

L: frame length

p: adaptive code vector

c: random code vector

ga: adaptive code gain (pitch gain)

gc: random code gain

Because a closed loop search of the code that minimizes the equation 1involves a vast amount of computation for the code search, however, anordinary CELP type speech coder first performs adaptive codebook searchto specify the code number of an adaptive code vector, and then executesrandom codebook search based on the searching result to specify the codenumber of a random code vector.

The speech coder search by the CELP type speech coder will now beexplained with reference to FIGS. 2A through 2C. In the figures, a codex is a target vector for the random codebook search obtained by anequation 2. It is assumed that the adaptive codebook search has alreadybeen accomplished.x=v−gaHp  (2)where

x: target (vector) for the random codebook search

v: speech signal (vector)

H: impulse response convolution matrix H of the synthesis filter

p: adaptive code vector

ga: adaptive code gain (pitch gain)

The random codebook search is a process of specifying a random codevector c which minimizes coding distortion that is defined by anequation 3 in a distortion calculator 16 as shown in FIG. 2A.∥x−gcHc∥²  (3)where

x: target (vector) for the random codebook search

H: impulse response convolution matrix of the synthesis filter

c: random code vector

gc: random code gain.

The distortion calculator 16 controls a control switch 21 to switch arandom code vector to be read from the random codebook 15 until therandom code vector c is specified.

An actual CELP type speech coder has a structure in FIG. 2B to reducethe computational complexities, and a distortion calculator 16′ carriesout a process of specifying a code number which maximizes a distortionmeasure in an equation 4. $\begin{matrix}\begin{matrix}{\frac{( {x^{\prime}{Hc}} )^{2}}{{\quad{Hc}}^{2}} = \frac{( {( {x^{\prime}H} )c} )^{2}}{{{Hc}}^{2}}} \\{= \frac{( {x^{\prime\prime}c} )^{2}}{{{Hc}}^{2}}} \\{= \frac{( {x^{\prime\prime}c} )^{2}}{c^{\prime}H^{\prime}{Hc}}}\end{matrix} & (4)\end{matrix}$where

x: target (vector) for the random codebook search

H: impulse response convolution matrix of the synthesis filter

Ht: transposed matrix of H

Xt: time reverse synthesis of x using H (x′^(t)=x^(t)H)

c: random code vector.

Specifically, the random codebook control switch 21 is connected to oneterminal of the random codebook 15 and the random code vector c is readfrom an address corresponding to that terminal. The read random codevector c is synthesized with vocal tract information by the synthesisfilter 13, producing a synthesized vector Hc. Then, the distortioncalculator 16′ computes a distortion measure in the equation 4 using avector x′ obtained by a time reverse process of a target x, the vectorHc resulting from synthesis of the random code vector in the synthesisfilter and the random code vector c. As the random codebook controlswitch 21 is switched, computation of the distortion measure isperformed for every random code vector in the random codebook.

Finally, the number of the random codebook control switch 21 that hadbeen connected when the distortion measure in the equation 4 becamemaximum is sent to a code output section 17 as the code number of therandom code vector.

FIG. 2C shows a partial structure of a speech decoder. The switching ofthe random codebook control switch 21 is controlled in such a way as toread out the random code vector that has a transmitted code number.After a transmitted random code gain gc and filter coefficient are setin an amplifier 23 and a synthesis filter 24, a random code vector isread out to restore a synthesized speech.

In the above-described speech coder/speech decoder, the greater thenumber of random code vectors stored as excitation information in therandom codebook 15 is, the more possible it is to search a random codevector close to the excitation vector of an actual speech. As thecapacity of the random codebook (ROM) is limited, however, it is notpossible to store countless random code vectors corresponding to all theexcitation vectors in the random codebook. This restricts improvement onthe quality of speeches.

Also has proposed an algebraic excitation which can significantly reducethe computational complexities of coding distortion in a distortioncalculator and can eliminate a random codebook (ROM) (described in “8KBIT/S ACELP CODING OF SPEECH WITH 10 MS SPEECH-FRAME: A CANDIDATE FORCCITT STANDARDIZATION”: R. Salami, C. Laflamme, J-P. Adoul, ICASSP '94,pp. II-97 to II-100, 1994).

The algebraic excitation considerably reduces the complexities ofcomputation of coding distortion by previously computing the results ofconvolution of the impulse response of a synthesis filter and atime-reversed target and the autocorrelation of the synthesis filter anddeveloping them in a memory. Further, a ROM in which random code vectorshave been stored is eliminated by algebraically generating random codevectors. A CS-ACELP and ACELP which use the algebraic excitation havebeen recommended respectively as G. 729 and G. 723.1 from the ITU-T.

In the CELP type speech coder/speech decoder equipped with theabove-described algebraic excitation in a random codebook section,however, a target for a random codebook search is always coded with apulse sequence vector, which puts a limit to improvement on speechquality.

DISCLOSURE OF INVENTION

It is therefore a primary object of the present invention to provide anexcitation vector generator, a speech coder and a speech decoder, whichcan significantly suppress the memory capacity as compared with a casewhere random code vectors are stored directly in a random codebook, andcan improve the speech quality

It is a secondary object of this invention to provide an excitationvector generator, a speech, coder and a speech decoder, which cangenerate complicated random code vectors as compared with a case wherean algebraic excitation is provided in a random codebook section and atarget for a random codebook search is coded with a pulse sequencevector, and can improve the speech quality.

In this invention, the fixed code vector reading section and fixedcodebook of a conventional CELP type speech coder/decoder arerespectively replaced with an oscillator, which outputs different vectorsequences in accordance with the values of input seeds, and a seedstorage section which stores a plurality of seeds (seeds of theoscillator). This eliminates the need for fixed code vectors to bestored directly in a fixed codebook (ROM) and can thus reduce the memorycapacity significantly.

Further, according to this invention, the random code vector readingsection and random codebook of the conventional CELP type speechcoder/decoder are respectively replaced with an oscillator and a seedstorage section. This eliminates the need for random code vectors to bestored directly in a random codebook (ROM) and can thus reduce thememory capacity significantly.

The invention is an excitation vector generator which is so designed asto store a plurality of fixed waveforms, arrange the individual fixedwaveforms at respective start positions based on start positioncandidate information and add those fixed waveforms to generate anexcitation vector. This can permit an excitation vector close to anactual speech to be generated.

Further, the invention is a CELP type speech coder/decoder constructedby using the above excitation vector generator as a random codebook. Afixed waveform arranging section may algebraically generate startposition candidate information of fixed waveforms.

Furthermore, the invention is a CELP type speech coder/decoder, whichstores a plurality of fixed waveforms, generates an impulse with respectto start position candidate information of each fixed waveform,convolutes the impulse response of a synthesis filter and each fixedwaveform to generate an impulse response for each fixed waveform,computes the autocorrelations and correlations of impulse responses ofthe individual fixed waveforms and develop them in a correlation matrix.This can provide a speech coder/decoder which improves the quality of asynthesized speech at about the same computation cost as needed in acase of using an algebraic excitation as a random codebook.

Moreover, this invention is a CELP type speech coder/decoder equippedwith a plurality of random codebooks and switch means for selecting oneof the random codebooks. At least one random codebook may be theaforementioned excitation vector generator, or at least one randomcodebook may be a vector storage section having a plurality of randomnumber sequences stored therein or a pulse sequences storage sectionhaving a plurality of random number sequences stored therein, or atleast two random codebooks each having the aforementioned excitationvector generator may be provided with the number of fixed waveforms tobe stored differing from one random codebook to another, and the switchmeans selects one of the random codebooks so as to minimize codingdistortion at the time of searching a random codebook or adaptivelyselects one random codebook according to the result of analysis ofspeech segments.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a schematic diagram of a conventional CELP type speech coder;

FIG. 2A is a block diagram of an excitation vector generating section inthe speech coder in FIG. 1;

FIG. 2B is a block diagram of a modification of the excitation vectorgenerating section which is designed to reduce the computation cost;

FIG. 2C is a block diagram of an excitation, vector generating sectionin a speech decoder which is used as a pair with the speech coder inFIG. 1;

FIG. 3 is a block diagram of the essential portions of a speech coderaccording to a first mode;

FIG. 4 is a block diagram of an excitation vector generator equipped inthe speech coder of the first mode;

FIG. 5 is a block diagram of the essential portions of a speech coderaccording to a second mode;

FIG. 6 is a block diagram of an excitation vector generator equipped inthe speech coder of the second mode;

FIG. 7 is a block diagram of the essential portions of a speech coderaccording to third and fourth modes;

FIG. 8 is a block diagram of an excitation vector generator equipped inthe speech coder of the third mode;

FIG. 9 is a block diagram of a non-linear digital filter equipped in thespeech coder of the fourth mode;

FIG. 10 is a diagram of the adder characteristic of the non-lineardigital filter shown in FIG. 9;

FIG. 11 is a block diagram of the essential portions of a speech coderaccording to a fifth mode;

FIG. 12 is a block diagram of the essential portions of a speech coderaccording to a sixth mode;

FIG. 13A is a block diagram of the essential portions of a speech coderaccording to a seventh mode;

FIG. 13B is a block diagram of the essential portions of the speechcoder according to the seventh mode;

FIG. 14 is a block diagram of the essential portions of a speech decoderaccording to an eighth mode;

FIG. 15 is a block diagram of the essential portions of a speech coderaccording to a ninth mode;

FIG. 16 is a block diagram of a quantization target LSP adding sectionequipped in the speech coder according to the ninth mode;

FIG. 17 is a block diagram of an LSP quantizing/decoding sectionequipped in the speech coder according to the ninth mode;

FIG. 18 is a block diagram of the essential portions of a speech coderaccording to a tenth mode;

FIG. 19A is a block diagram of the essential portions of a speech coderaccording to an eleventh mode;

FIG. 19B is a block diagram of the essential portions of a speechdecoder according to the eleventh mode;

FIG. 20 is a block diagram of the essential, portions of a speech coderaccording to a twelfth mode;

FIG. 21 is a block diagram of the essential portions of a speech coderaccording to a thirteenth mode;

FIG. 22 is a block diagram of the essential portions of a speech coderaccording to a fourteenth mode;

FIG. 23 is a block diagram of the essential portions of a speech coderaccording to a fifteenth mode;

FIG. 24 is a block diagram of the essential portions of a speech coderaccording to a sixteenth mode;

FIG. 25 is a block diagram of a vector quantizing section in thesixteenth mode;

FIG. 26 is a block diagram of a parameter coding section of a speechcoder according to a seventeenth mode; and

FIG. 27 is a block diagram of a noise canceller according to aneighteenth mode.

BEST MODES FOR CARRYING OUT THE INVENTION

Preferred modes of the present invention will now be describedspecifically with reference to the accompanying drawings.

(First Mode)

FIG. 3 is a block diagram of the essential portions of a speech coderaccording to this mode. This speech coder comprises an excitation vectorgenerator 30, which has a seed storage section 31 and an oscillator 32,and an LPC synthesis filter 33.

Seeds (oscillation seeds) 34 output from the seed storage section 31 areinput to the oscillator 32. The oscillator 32 outputs different vectorsequences according to the values of the input seeds. The oscillator 32oscillates with the content according to the value of the seed(oscillation seed) 34 and outputs an excitation vector 35 as a vectorsequence. The LPC synthesis filter 33 is supplied with vocal tractinformation in the form of the impulse response convolution matrix ofthe synthesis filter, and performs convolution on the excitation vector35 with the impulse response, yielding a synthesized speech 36. Theimpulse response convolution of the excitation vector 35 is called LPCsynthesis.

FIG. 4 shows the specific structure the excitation vector generator 30.A seed to be read from the seed storage section 31 is switched by acontrol switch 41 for the seed storage section in accordance with acontrol signal given from a distortion calculator.

Simple storing of a plurality of seeds for outputting different vectorsequences from the oscillator 32 in the seed storage section 31 canallow more random code vectors to be generated with less capacity ascompared with a case where complicated random code vectors are directlystored in a random codebook.

Although this mode has been described as a speech coder, the excitationvector generator 30 can be adapted to a speech decoder. In this case,the speech decoder has a seed storage section with the same contents asthose of the seed storage section 31 of the speech coder and the controlswitch 41 for the seed storage section is supplied with a seed numberselected at the time of coding.

(Second Mode)

FIG. 5 is a block diagram of the essential portions of a speech coderaccording to this mode. This speech coder comprises an excitation vectorgenerator 50, which has a seed storage section 51 and a non-linearoscillator 52, and an LPC synthesis filter 53.

Seeds (oscillation seeds) 54 output from the seed storage section 51 areinput to the non-linear oscillator 52. An excitation vector 55 as avector sequence output from the non-linear oscillator 52 is input to theLPC synthesis filter 53′. The output of the LPC synthesis filter 53 is asynthesized speech 56.

The non-linear oscillator 52 outputs different vector sequencesaccording to the values of the input seeds 54, and the LPC synthesisfilter 53 performs LPC synthesis on the input excitation vector 55 tooutput the synthesized speech 56.

FIG. 6 shows the functional blocks of the excitation vector generator50. A seed to be read from the seed storage section 51 is switched by acontrol switch 41 for the seed storage section in accordance with acontrol signal given from a distortion calculator.

The use of the non-linear oscillator 52 as an oscillator in theexcitation vector 50 can suppress divergence with oscillation accordingto the non-linear characteristic, and can provide practical excitationvectors.

Although this mode has been described as a speech coder, the excitationvector generator 50 can be adapted to a speech decoder. In this case,the speech decoder has a seed storage section with the same contents asthose of the seed storage section 51 of the speech coder and the controlswitch 41 for the seed storage section is supplied with a seed numberselected at the time of coding.

(Third Mode)

FIG. 7 is a block diagram of the essential portions of a speech coderaccording to this mode. This speech coder comprises an excitation vectorgenerator 70, which has a seed storage section 71 and a non-lineardigital filter 72, and an LPC synthesis filter 73. In the diagram,numeral “74” denotes a seed (oscillation seed) which is output from theseed storage section 71 and input to the non-linear digital filter 72,numeral “75” is an excitation vector as a vector sequence output fromthe non-linear digital filter 72, and numeral “76” is a synthesizedspeech output from the LPC synthesis filter 73.

The excitation vector generator 70 has a control switch 41 for the seedstorage section which switches a seed to be read from the seed storagesection 71 in accordance with a control signal given from a distortioncalculator, as shown in FIG. 8.

The non-linear digital filter 72 outputs different vector sequencesaccording to the values of the input seeds, and the LPC synthesis filter73 performs LPC synthesis on the input excitation vector 75 to outputthe synthesized speech 76.

The use of the non-linear digital filter 72 as an oscillator in theexcitation vector 70 can suppress divergence with oscillation accordingto the non-linear characteristic, and can provide practical excitationvectors. Although this mode has been described as a speech coder, theexcitation vector generator 70 can be adapted to a speech decoder. Inthis case, the speech decoder has a seed storage section with the samecontents as those of the seed storage section 71 of the speech coder andthe control switch 41 for the seed storage section is supplied with aseed number selected at the time of coding.

(Fourth Mode)

A speech coder according to this mode comprises an excitation vectorgenerator 70, which has a seed storage section 71 and a non-lineardigital filter 72, and an LPC synthesis filter 73, as shown in FIG. 7.

Particularly, the non-linear digital filter 72 has a structure asdepicted in FIG. 9. This non-linear digital filter 72 includes an adder91 having a non-linear adder characteristic as shown in FIG. 10, filterstate holding sections 92 to 93 capable of retaining the states (thevalues of y(k−1) to y(k−N)) of the digital filter, and multipliers 94 to95, which are connected in parallel to the outputs of the respectivefilter state holding sections 92-93, multiply filter states by gains andoutput the results to the adder 91. The initial values of the filterstates are set in the filter state holding sections 92-93, by seeds readfrom the seed storage section 71. The values of the gains of themultipliers 94-95 are so fixed that the polarity, of the digital filterlies outside a unit circle on a Z plane.

FIG. 10 is a conceptual diagram of the non-linear adder characteristicof the adder 91 equipped in the non-linear digital filter 72, and showsthe input/output relation of the adder 91 which has a 2's complementcharacteristic. The adder 91 first acquires the sum of adder inputs orthe sum of the input values to the adder 91, and then uses thenon-linear characteristic illustrated in FIG. 10 to compute an adderoutput corresponding to the input sum.

In particular, the non-linear digital filter 72 is a second-orderall-pole model so that the two filter state holding sections 92 and 93are connected in series, and the multipliers 94 and 95 are connected tothe outputs of the filter state holding sections 92 and 93. Further, thedigital filter in which the non-linear adder characteristic of the adder91 is a 2's complement characteristic is used. Furthermore, the seedstorage section 71 retains seed vectors of 32 words as particularlydescribed in TABLE 1 Seed vectors for generating random code vectors iSy(n − 1)[i] Sy(n − 2)[i] 1 0.250000 0.250000 2 −0.564643 −0.104927 30.173879 −0.978792 4 0.632652 0.951133 5 0.920360 −0.113881 6 0.864873−0.860368 7 0.732227 0.497037 8 0.917543 −0.035103 9 0.109521 −0.76121010 −0.202115 0.198718 11 −0.095041 0.863849 12 −0.634213 0.424549 130.948225 −0.184861 14 −0.958269 0.969458 15 0.233709 −0.057248 16−0.852085 −0.564948

In the thus constituted speech coder, seed vectors read from the seedstorage section 71 are given as initial values to the filter stateholding sections 92 and 93 of the non-linear digital filter 72. Everytime zero is input to the adder 91 from an input vector (zerosequences), the non-linear digital filter 72 outputs one sample (y(k))at a time which is sequentially transferred as a filter state to thefilter state holding sections 92 and 93. At this time, the multipliers94 and 95 multiply the filter states output from the filter stateholding sections 92 and 93 by gains a1 and a2 respectively. The adder 91adds the outputs of the multipliers 94 and 95 to acquire the sum of theadder inputs, and generates an adder output which is suppressed between+1 to −1 based on the characteristic in FIG. 10. This adder output(y(k+1)) is output as an excitation vector and is sequentiallytransferred to the filter state holding sections. 92 and 93 to produce anew sample (y(k+2)).

Since the coefficients 1 to N of the multipliers 94-95 are fixed so thatparticularly the poles of the non-linear digital filter lies outside aunit circle on the Z plane according to this mode, thereby providing theadder 91 with a non-linear adder characteristic, the divergence of theoutput can be suppressed even when the input to the non-linear digitalfilter 72 becomes large, and excitation vectors good for practical usecan be kept generated. Further, the randomness of excitation vectors tobe generated can be secured.

Although this mode has been described as a speech coder, the excitationvector generator 70 can be adapted to a speech decoder. In this case,the speech decoder has a seed storage section with the same contents asthose of the seed storage section 71 of the speech coder and the controlswitch 41 for the seed storage section is supplied with a seed numberselected at the time of coding.

(Fifth Mode)

FIG. 11 is a block diagram of the essential portions of a speech coderaccording to this mode. This speech coder comprises an excitation vectorgenerator 110, which has an excitation vector storage section 111 and anadded-excitation-vector generator 112, and an LPC synthesis filter 113.

The excitation vector storage section 111 retains old excitation vectorswhich are read by a control switch upon reception of a control signalfrom an unillustrated distortion calculator.

The added-excitation-vector generator 112 performs a predeterminedprocess, indicated by an added-excitation-vector number excitationvector, on an old excitation vector read from the storage section 111 toproduce a new excitation vector. The added-excitation-vector generator112 has a function of switching the process content for an oldexcitation vector in accordance with the added-excitation-vector number.

According to the thus constituted speech coder, anadded-excitation-vector number is given from the distortion calculatorwhich is executing, for example, an excitation vector search. Theadded-excitation-vector generator 112 executes different processes onold excitation vectors depending on the value of the inputadded-excitation-vector number to generate different added excitationvectors, and the LPC synthesis filter 113 performs LPC synthesis on theinput excitation vector to output a synthesized speech.

According to this mode, random excitation vectors can be generatedsimply by storing fewer old excitation vectors in the excitation vectorstorage section 111 and switching the process contents by means of theadded-excitation-vector generator 112, and it is unnecessary to storerandom code vectors directly in a random codebook (ROM). This cansignificantly reduce the memory capacity.

Although this mode has been described as a speech coder, the excitationvector generator 110 can be adapted to a speech decoder. In this case,the speech decoder has an excitation vector storage section with thesame contents as those of the excitation vector storage section 111 ofthe speech coder and an added-excitation-vector number selected at thetime of coding is given to the added-excitation-vector generator 112.

(Sixth Mode)

FIG. 12 shows the functional blocks of an excitation vector generatoraccording to this mode. This excitation vector generator comprises anadded-excitation-vector generator 120 and an excitation vector storagesection 121 where a plurality of element vectors 1 to N are stored.

The added-excitation-vector generator 120 includes a reading section 122which performs a process of reading a plurality of element vectors ofdifferent lengths from different positions in the excitation vectorstorage section 121, a reversing section 123 which performs a process ofsorting the read element vectors in the reverse order, a multiplyingsection 124 which performs a process of multiplying a plurality ofvectors after the reverse process by different gains respectively, adecimating section 125 which performs a process of shortening the vectorlengths of a plurality of vectors after the multiplication, aninterpolating section 126 which performs a process of lengthening thevector lengths of the thinned vectors, an adding section 127 whichperforms a process of adding the interpolated vectors, and a processdetermining/instructing section 128 which has a function of determininga specific processing scheme according to the value of the inputadded-excitation-vector number and instructing the individual sectionsand a function of holding a conversion map (Table 2) between numbers andprocesses which is referred to at the time of determining the specificprocess contents. TABLE 2 Conversion map between numbers and processesBit stream(MS . . . LSB) 6 5 4 3 2 1 0 V1 reading position 3 2 1 0 (16kinds) V2 reading position 2 1 0 4 3 (32 kinds) V3 reading position 4 32 1 0 (32 kinds) Reverse process 0 (2 kinds) Multiplication 1 0 (4kinds) decimating process 1 0 (4 kinds) interpolation 0 (2 kinds)

The added-excitation-vector generator 120 will now be described morespecifically. The added-excitation-vector generator 120 determinesspecific processing schemes for the reading section 122, the reversingsection 123, the multiplying section 124, the decimating section 125,the interpolating section 126 and the adding section 127 by comparingthe input added-excitation-vector number (which is a sequence of 7 bitstaking any integer value from 0 to 127) with the conversion map betweennumbers and processes (Table 2), and reports the specific processingschemes to the respective sections. The reading section 122 firstextracts an element vector 1 (V1) of a length of 100 from one end of theexcitation vector storage section 121 to the position of n1, payingattention to a sequence of the lower four bits of the inputadded-excitation-vector number (n1: an integer value from 0 to 15).Then, the reading section 122 extracts an element vector 2 (V2) of alength of 78 from the end of the excitation vector storage section 121to the position of n2+14 (an integer value from 14 to 45), payingattention to a sequence of five bits (n2: an integer value from 14 to45) having the lower two bits and the upper three bits of the inputadded-excitation-vector number linked together. Further, the readingsection 122 performs a process of extracting an element vector 3 (V3) ofa length of Ns (=52) from one end of the excitation vector storagesection 121 to the position of n3+46 (an integer value from 46 to 77),paying attention to a sequence of the upper five bits of the inputadded-excitation-vector number (n3: an integer value from 0 to 31), andsending V1, V2 and V3 to the reversing section 123.

The reversing section 123 performs a process of sending a vector havingV1, V2 and V3 rearranged in the reverse order to the multiplying section124 as new V1, V2 and V3 when the least significant bit of theadded-excitation-vector number is “0” and sending V1, V2 and V3 as theyare to the multiplying section 124 when the least significant bit is“1.”

Paying attention to a sequence of two bits having the upper seventh andsixth bits of the added-excitation-vector number linked, the multiplyingsection 124 multiplies the amplitude of V2 by −2 when the bit sequenceis “00,” multiplies the amplitude of V3 by −2 when the bit sequence is“01,” multiplies the amplitude of V1 by −2 when the bit sequence is “10”or multiplies the amplitude of V2 by 2 when the bit sequence is “11,”and sends the result as new V1, V2 and V3 to the decimating section 125.

Paying attention to a sequence of two bits having the upper fourth andthird bits of the added-excitation-vector number linked, the decimatingsection 125

(a) sends vectors of 26 samples extracted every other sample from V1, V2and V3 as new V1, V2 and V3 to the interpolating section 126 when thebit sequence is “00,” (b) sends vectors of 26 samples extracted everyother sample from V1 and V3 and every third sample from V2 as new V1, V3and V2 to the interpolating section 126 when the bit sequence is “01,”

(c) sends vectors of 26 samples extracted every fourth sample from V1and every other sample from V2 and V3 as new V1, V2 and V3 to theinterpolating section 126 when the bit sequence is “10,” and

(d) sends vectors of 26 samples extracted every fourth sample from V1,every third sample from V2 and every other sample from V3 as new V1, V2and V3 to the interpolating section 126 when the bit sequence is “11.”

Paying attention to the upper third bit of the added-excitation-vectornumber, the interpolating section 126

(a) sends vectors which have V1, V2 and V3 respectively substituted ineven samples of zero vectors of a length Ns (=52) as new V1, V2 and V3to the adding section 127 when the value of the third bit is “0” and

(b) sends vectors which have V1, V2 and V3 respectively substituted inodd samples of zero vectors of a length Ns (=52) as new V1, V2 and V3 tothe adding section 127 when the value of the third bit is “1.”

The adding section 127 adds the three vectors (V1, V2 and V3) producedby the interpolating section 126 to generate an added excitation vector.

According to this mode, as apparent from the above, a plurality ofprocesses are combined at random in accordance with theadded-excitation-vector number to produce random excitation vectors, sothat it is unnecessary to store random code vectors as they are in arandom codebook (ROM), ensuring a significant reduction in memorycapacity.

Note that the use of the excitation vector generator of this mode in thespeech coder of the fifth mode can allow complicated and randomexcitation vectors to be generated without using a large-capacity randomcodebook.

(Seventh Mode)

A description will now be given of a seventh mode in which theexcitation vector generator of any one of the above-described first tosixth modes is used in a CELP type speech coder that is based on thePSI-CELP, the standard speech coding/decoding system for PDC digitalportable telephones in Japan.

FIG. 13A is presents a block diagram of a speech coder according to theseventh mode. In this speech coder, digital input speech data 1300 issupplied to a buffer 1301 frame by frame (frame length Nf=104). At thistime, old data in the buffer 1301 is updated with new data supplied. Aframe power quantizing/decoding section 1302 first reads a processingframe s(i) (0≦i≦Nf−1) of a length Nf (=104) from the buffer 1301 andacquires mean power amp of samples in that processing frame from anequation 5. $\begin{matrix}{{amp} = \sqrt{\frac{\sum\limits_{i = 0}^{Nf}{s^{2}(i)}}{Nf}}} & (5)\end{matrix}$where amp: mean power of samples in a processing frame

i: element number (0≦i≦Nf−1) in the processing frame

s(i): samples in the processing frame

Nf: processing frame length (=52).

The acquired mean power amp of samples in the processing frame isconverted to a logarithmically converted value amplog from an equation6. $\begin{matrix}{{{amp}\quad\log} = \frac{\log_{10}( {{255 \times {amp}} + 1} )}{\log_{10}( {255 + 1} )}} & (6)\end{matrix}$where

amplog: logarithmically converted value of the mean power of samples inthe processing frame

amp: mean power of samples in the processing frame.

The acquired amplog is subjected to scalar quantization using ascalar-quantization table Cpow of 10 words as shown in Table 3 stored ina power quantization table storage section 1303 to acquire an index ofpower Ipow of four bits, decoded frame power spow is obtained from theacquired index of power Ipow, and the index of power Ipow and decodedframe power spow are supplied to a parameter coding section 1331. Thepower quantization table storage section 1303 is holding a powerscalar-quantization table (Table 3) of 16 words, which is referred towhen the frame power quantizing/decoding section 1302 carries out scalarquantization of the logarithmically converted value of the mean power ofthe samples in the processing frame. TABLE 3 Power scalar-quantizationtable i Cpow(i) 1 0.00675 2 0.06217 3 0.10877 4 0.16637 5 0.21876 60.26123 7 0.30799 8 0.35228 9 0.39247 10 0.42920 11 0.46252 12 0.4950313 0.52784 14 0.56484 15 0.61125 16 0.67498

An LPC analyzing section 1304 first reads analysis segment data of ananalysis segment length Nw (=256) from the buffer 1301, multiplies theread analysis segment data by a Hamming window of a window length Nw(=256) to yield a Hamming windowed analysis data and acquires theautocorrelation function of the obtained Hamming windowed analysis datato a prediction order Np (=10). The obtained autocorrelation function ismultiplied by a lag window table (Table 4) of 10 words stored in a lagwindow storage section 1305 to acquire a Hamming windowedautocorrelation function, performs linear predictive analysis on theobtained Hamming windowed autocorrelation function to compute an LPCparameter. α(i) (1≦i≦Np) and outputs the parameter to a pitchpre-selector 1308. TABLE 4 Lag window table i Wlag(i) 0 0.9994438 10.9977772 2 0.9950056 3 0.9911382 4 0.9861880 5 0.9801714 6 0.9731081 70.9650213 8 0.9559375 9 0.9458861

Next, the obtained LPC parameter α(i) is converted to an LSP (LinearSpectrum Pair) ω(i) (1≦i≦Np) which is in turn output to an LSPquantizing/decoding section 1306. The lag window storage section 1305 isholding a lag window table to which the LPC analyzing section refers.

The LSP quantizing/decoding section 1306 first refers to a vectorquantization table of an LSP stored in a LSP quantization table storagesection 1307 to perform vector quantization on the LSP received from theLPC analyzing section 1304, thereby selecting an optimal index, andsends the selected index as an LSP code Ilsp to the parameter codingsection 1331. Then, a centroid corresponding to the LSP code is read asa decoded LSP ωq(i) (1≦i≦Np) from the LSP quantization table storagesection 1307, and the read decoded LSP is sent to an LSP interpolationsection 1311. Further, the decoded LSP is converted to an LPC to acquirea decoded LSP αq(i) (1≦i≦Np), which is in turn sent to a spectralweighting filter coefficients calculator 1312 and a perceptual weightedLPC synthesis filter coefficients calculator 1314. The LSP quantizationtable storage section 1307 is holding an LSP vector quantization tableto which the LSP quantizing/decoding section 1306 refers when performingvector quantization on an LSP.

The pitch pre-selector 1308 first subjects the processing frame datas(i) (0≦i≦Nf−1) read from the buffer 1301 to inverse filtering using theLPC a (i) (1≦i≦Np) received from the LPC analyzing section 1304 toobtain a linear predictive residual signal res(i) (0≦i≦Nf−1), computesthe power of the obtained linear predictive residual signal res(i),acquires a normalized predictive residual power resid resulting fromnormalization of the power of the computed residual signal with thepower of speech samples of a processing subframe, and sends thenormalized predictive residual power to the parameter coding section1331. Next, the linear predictive residual signal res(i) is multipliedby a Hamming window of a length Nw (=256) to produce a Hamming windowedlinear predictive residual signal resw(i) (0≦i≦Nw−1), and anautocorrelation function φint(i) of the produced resw(i) is obtainedover a range of Lmin−2≦i≦Lmax+2 (where Lmin is 16 in the shortestanalysis segment of a long predictive coefficient and Lmax is 128 in thelongest analysis segment of a long predictive coefficient). A polyphasefilter coefficient Cppf (Table 5) of 28 words stored in a polyphasecoefficients storage section 1309 is convoluted in the obtainedautocorrelation function φint(i) to acquire an autocorrelation functionφdq(i) at a fractional position shifted by −¼ from an integer lag int,an autocorrelation function φaq(i) at a fractional position shifted by+¼ from the integer lag int, and an autocorrelation function φah(i) at afractional position shifted by +½ from the integer lag int. TABLE 5Polyphase filter coefficients Cppf i Cppf(i) 0 0.100035 1 −0.180063 20.900316 3 0.300105 4 −0.128617 5 0.081847 6 −0.060021 7 0.000000 80.000000 9 1.000000 10 0.000000 11 0.000000 12 0.000000 13 0.000000 14−0.128617 15 0.300105 16 0.900316 17 −0.180063 18 0.100035 19 −0.06925520 0.052960 21 −0.212207 22 0.636620 23 0.636620 24 −0.212207 250.127324 26 −0.090946 27 0.070736

Further, for each argument i in a range of Lmin−2≦i≦Lmax+2, a process ofan equation 7 of substituting the largest one of φint(i), φdq(i), φaq(i)and φah(i) in φmax(i) to acquire (Lmax−Lmin+1) pieces of φmax(i).φmax(i)=MAX(φint(i), φdq(i), φaq(i), φah(i))φmax(i): maximum value of φint(i),φdq(i),φaq(i),φah(i)  (7)where

φmax(i): the maximum value among φint(i), φdq(i), φaq(i) φah(i)

I: analysis segment of a long predictive coefficient (Lmin≦i≦Lmax)

Lmin: shortest analysis segment (=16) of the long predictive coefficient

Lmax: longest analysis segment (=128) of the long predictive coefficient

φint(i): autocorrelation function of an integer lag (int) of apredictive residual signal

φdq(i): autocorrelation function of a fractional lag (int−¼) of thepredictive residual signal

φaq(i): autocorrelation function of a fractional lag (int+¼) of thepredictive residual signal

φah(i): autocorrelation function of a fractional lag (int+½) of thepredictive residual signal.

Larger top six are selected from the acquire (Lmax−Lmin+1) pieces ofφmax(i) and are saved as pitch candidates psel(i) (0≦i≦5), and thelinear predictive residual signal res(i) and the first pitch candidatepsel(0) are sent to a pitch weighting filter calculator 1310 and psel(i)(0≦i≦5) to an adaptive code vector generator 1319.

The polyphase coefficients storage section 1309 is holding polyphasefilter coefficients to be referred to when the pitch pre-selector 1308acquires the autocorrelation of the linear predictive residual signal toa fractional lag precision and when the adaptive code vector generator1319 produces adaptive code vectors to a fractional precision.

The pitch weighting filter calculator 1310 acquires pitch predictivecoefficients cov(i) (0≦i≦2) of a third order from the linear predictiveresiduals res(i) and the first pitch candidate psel(0) obtained by thepitch pre-selector 1308. The impulse response of a pitch weightingfilter Q(z) is obtained from an equation which uses the acquired pitchpredictive coefficients cov(i) (0≦i≦2), and is sent to the spectralweighting filter coefficients calculator 1312 and a perceptual weightingfilter coefficients calculator 1313. $\begin{matrix}{{Q(z)} = {1 + {\sum\limits_{i = 0}^{2}{{{cov}(i)} \times \lambda\quad{pi} \times z}} - {{psel}(0)} + i - 1}} & (8)\end{matrix}$where

Q(z): transfer function of the pitch weighting filter

cov(i): pitch predictive coefficients (0≦i≦2)

λpi: pitch weighting constant (=0.4)

psel(0): first pitch candidate.

The LSP interpolation section 1311 first acquires a decoded interpolatedLSP ωintp(n,i) (1≦i≦Np) subframe by subframe from an equation 9 whichuses a decoded LSP ωq(i) for the current processing frame, obtained bythe LSP quantizing/decoding section 1306, and a decoded LSP ωqp(i) for aprevious processing frame which has been acquired and saved earlier.$\begin{matrix}{{\omega\quad{{intp}( {n,i} )}} = \{ \begin{matrix}{{0.4 \times \omega\quad{q(i)}} + {0.6 \times \omega\quad{{qp}(i)}}} & {n = 1} \\{\omega\quad{q(i)}} & {n = 2}\end{matrix} } & (9)\end{matrix}$where ωintp(n,j): interpolated LSP of the n-th subframe

n: subframe number (=1,2)

ωq(i): decoded LSP of a processing frame

ωqp(i): decoded LSP of a previous processing frame.

A decoded interpolated LPC αq(n,i) (1≦i≦Np) is obtained by convertingthe acquired ωintp(n,i) to an LPC and the acquired, decoded interpolatedLPC α q(n,i) (1≦i≦Np) is sent to the spectral weighting filtercoefficients calculator 1312 and the perceptual weighted LPC synthesisfilter coefficients calculator 1314.

The spectral weighting filter coefficients calculator 1312, whichconstitutes an MA type spectral weighting filter I(z) in an equation 10,sends its impulse response to the perceptual weighting filtercoefficients calculator 1313. $\begin{matrix}{{I(z)} = {\sum\limits_{i = 1}^{Nfir}{\alpha\quad{{fir}(i)} \times z^{- i}}}} & (10)\end{matrix}$where

I(z): transfer function of the MA type spectral weighting filter

Nfir: filter order (=11) of I(z)

αfir(i): filter order (1≦i≦Nfir) of I(z).

Note that the impulse response αfir(i) (1≦i≦Nfir) in the equation 10 isan impulse response of an ARMA type spectral weighting filter G(z),given by an equation 11, cut after Nfir(=11). $\begin{matrix}{{G(z)} = \frac{1 + {\sum\limits_{i = 1}^{Np}{{\alpha( {n,i} )} \times \lambda\quad{ma}^{i} \times z^{- i}}}}{1 + {\sum\limits_{i = 1}^{Np}{{\alpha( {n,i} )} \times \lambda\quad{ar}^{i} \times z^{- i}}}}} & (11)\end{matrix}$where

G(z): transfer function of the spectral weighting filter

n: subframe number (=1,2)

Np: LPC analysis order (=10)

α(n,i): decoded interpolated LSP of the n-th subframe

λma: numerator constant (=0.9) of G(z)

λar: denominator constant (=0.4) of G(z).

The perceptual weighting filter coefficients calculator 1313 firstconstitutes a perceptual weighting filter W(z) which has as an impulseresponse the result of convolution of the impulse response of thespectral weighting filter I(z) received from the spectral weightingfilter coefficients calculator 1312 and the impulse response of thepitch weighting filter Q(z) received from the pitch weighting filtercalculator 1310, and sends the impulse response of the constitutedperceptual weighting filter W(z) to the perceptual weighted LPCsynthesis filter coefficients calculator 1314 and a perceptual weightingsection 1315.

The perceptual weighted LPC synthesis filter coefficients calculator1314 constitutes a perceptual weighted LPC synthesis filter H(z) from anequation 12 based on the decoded interpolated LPC aq(n,i) received fromthe LSP interpolation section 1311 and the perceptual weighting filterW(z) received from the perceptual weighting filter coefficientscalculator 1313. $\begin{matrix}{{H(z)} = {\frac{1}{1 + {\sum\limits_{i = 1}^{Np}{\alpha\quad{q( {n,i} )} \times z^{- i}}}}{W(z)}}} & (12)\end{matrix}$where

H(z): transfer function of the perceptual weighted synthesis filter

Np: LPC analysis order

αq(n,i): decoded interpolated LPC of the n-th subframe

n: subframe number (=1,2)

W(z): transfer function of the perceptual weighting filter (I(z) andQ(z) cascade-connected).

The coefficient of the constituted perceptual weighted LPC synthesisfilter H(z) is sent to a target vector generator A 1316, a perceptualweighted LPC reverse synthesis filter A 1317, a perceptual weighted LPCsynthesis filter A 1321, a perceptual weighted LPC reverse synthesisfilter B 1326 and a perceptual weighted LPC synthesis filter B 1329.

The perceptual weighting section 1315 inputs a subframe signal read fromthe buffer 1301 to the perceptual weighted LPC synthesis filter H(z) ina zero state, and sends its outputs as perceptual weighted residualsspw(i) (0≦i≦Ns−1) to the target vector generator A 1316.

The target vector generator A 1316 subtracts a zero input responseZres(i) (0≦i≦Ns−1), which is an output when a zero sequence is input tothe perceptual weighted LPC synthesis filter H(z) obtained by theperceptual weighted LPC synthesis filter coefficients calculator 1314,from the perceptual weighted residuals spw(i) (0≦i≦Ns−1) obtained by theperceptual weighting section 1315, and sends the subtraction result tothe perceptual weighted LPC reverse synthesis filter A 1317 and a targetvector generator B 1325 as a target vector r(i) (0≦i≦Ns−1) for selectingan excitation vector.

The perceptual weighted LPC reverse synthesis filter A 1317 sorts thetarget vectors r(i) (0≦i≦Ns−1) received from the target vector generatorA 1316 in a time reverse order, inputs the acquired vectors to theperceptual weighted LPC synthesis filter H(z) with the initial state ofzero, and sorts its outputs again in a time reverse order to obtain timereverse synthesis rh(k) (0≦i≦Ns−1) of the target vector, and sends thevector to a comparator A 1322.

Stored in an adaptive codebook 1318 are old excitation vectors which arereferred to when the adaptive code vector generator 1319 generatesadaptive code vectors. The adaptive code vector generator 1319 generatesNac pieces of adaptive code vectors Pacb(i,k) (0≦i≦Nac−1, 0≦k≦≦Ns−1,6≦Nac≦24) based on six pitch candidates psel(j) (0≦i≦5) received fromthe pitch pre-selector 1308, and sends the vectors to an adaptive/fixedselector 1320. Specifically, as shown in Table 6, adaptive code vectorsare generated for four kinds of fractional lag positions per a singleinteger lag position when 16≦psel(j)≦44, adaptive code vectors aregenerated for two kinds of fractional lag positions per a single integerlag position when 46≦psel(j)≦64, and adaptive code vectors are generatedfor integer lag positions when 65≦psel(j)≦128. From this, depending onthe value of psel(j) (0≦j≦5), the number of adaptive code vectorcandidates Nac is 6 at a minimum and 24 at a maximum. TABLE 6 Totalnumber of adaptive code vectors and fixed code vectors Total number ofvectors 255 Number of adaptive code vectors 222 16 ≦ psel(i) ≦ 44 116(29 × four kinds of fractional lags) 45 ≦ psel(i) ≦ 64  42 (21 × twokinds of fractional lags) 65 ≦ psel(i) ≦ 128  64 (64 × one kind offractional lag) Number of fixed code vectors  32 (16 × two kinds, ofcodes)

Adaptive code vectors to a fractional precision are generated through aninterpolation which convolutes the coefficients of the polyphase filterstored in the polyphase coefficients storage section 1309.

Interpolation corresponding to the value of lagf(i) means interpolationcorresponding to an integer lag position when lagf(i)=0, interpolationcorresponding to a fractional lag position shifted by −½ from an integerlag position when lagf(i)=1, interpolation corresponding to a fractionallag position shifted by +¼ from an integer lag position when lagf(i)=2,and interpolation corresponding to a fractional lag position shifted by−¼ from an integer lag position when lagf(i)=3.

The adaptive/fixed selector 1320 first receives adaptive code vectors ofthe Nac (6 to 24) candidates generated by the adaptive code vectorgenerator 1319 and sends the vectors to the perceptual weighted LPCsynthesis filter A 1321 and the comparator A 1322.

To pre-select the adaptive code vectors Pacb(i,k) (0≦i≦Nac−1, 0≦k≦Ns−1,6≦Nac≦24) generated by the adaptive code vector generator 1319 to Nacb(=4) candidates from Nac (6 to 24) candidates, the comparator A 1322first acquires the inner products prac(i) of the time reversesynthesized vectors rh(k) (0≦i≦Ns−1) of the target vector, received fromthe perceptual weighted LPC reverse synthesis filter A 1317, and theadaptive code vectors Pacb(i,k) from an equation 13. $\begin{matrix}{{{prac}(i)} = {\sum\limits_{k = 0}^{{Ns} - 1}{{{Pacb}( {i,k} )} \times {{rh}(k)}}}} & (13)\end{matrix}$where

Prac(i): reference value for pre-selection of adaptive code vectors

Nac: the number of adaptive code vector candidates after pre-selection(=6 to 24)

i: number of an adaptive code vector (0≦i≦Nac−1)

Pacb(i,k): adaptive code vector

rh(k): time reverse synthesis of the target vector r(k).

By comparing the obtained inner products Prac(i), the top Nacp (=4)indices when the values of the products become large and inner productswith the indices used as arguments are selected and are respectivelysaved as indices of adaptive code vectors after pre-selection apsel(j)(0≦j≦Nacb−1) and reference values after pre-selection of adaptive codevectors prac(apsel(j)), and the indices of adaptive code vectors afterpre-selection apsel(j) (0≦j≦Nacb−1) are output to the adaptive/fixedselector 1320.

The perceptual weighted LPC synthesis filter A 1321 performs perceptualweighted LPC synthesis on adaptive code vectors after pre-selectionPacb(absel(j),k), which have been generated by the adaptive code vectorgenerator 1319 and have passed the adaptive/fixed selector 1320, togenerate synthesized adaptive code vectors SYNacb(apsel(j),k) which arein turn sent to the comparator A 1322. Then, the comparator A 1322acquires reference values for final-selection of an adaptive code vectorsacbr(j) from an equation 14 for final-selection on the Nacb (=4)adaptive code vectors after pre-selection Pacb(absel(j),k), pre-selectedby the comparator A 1322 itself. $\begin{matrix}{{{sacbr}(j)} = \frac{{prac}^{2}( {{apsel}(j)} )}{\sum\limits_{k = 0}^{{Ns} - 1}{{SYNacb}^{2}( {j,k} )}}} & (14)\end{matrix}$where

sacbr(j): reference value for final-selection of an adaptive code vector

prac( ): reference values after pre-selection of adaptive code vectors

apsel(j): indices of adaptive code vectors after pre-selection

k: vector order (0≦j≦Ns−1)

j: number of the index of a pre-selected adaptive code vector(0≦j≦Nacb−1)

Ns: subframe length (52)

Nacb: the number of pre-selected adaptive code vectors (=4)

SYNacb(J,K): synthesized adaptive code vectors.

The index when the value of the equation 14 becomes large and the valueof the equation 14 with the index used as an argument are sent to theadaptive/fixed selector 1320 respectively as an index of adaptive codevector after final-selection ASEL and a reference value afterfinal-selection of an adaptive code vector sacbr(ASEL).

A fixed codebook 1323 holds Nfc (=16) candidates of vectors to be readby a fixed code vector reading section 1324. To pre-select fixed codevectors Pfcb(i,k) (0≦i≦Nfc−1, 0≦k≦Ns−1) read by the fixed code vectorreading section 1324 to Nfcb (=2) candidates from Nfc (=16) candidates,the comparator A 1322 acquires the absolute values |prfc(i)| of theinner products of the time reverse synthesized vectors rh(k) (0≦i≦Ns−1)of the target vector, received from the perceptual weighted LPC reversesynthesis filter A 1317, and the fixed code vectors Pfcb(i,k) from anequation 15. $\begin{matrix}{{{{prcfc}(i)}} = {\sum\limits_{k = 0}^{{Ns} - 1}{{{Pfcb}( {i,k} )} \times {{rh}(k)}}}} & (15)\end{matrix}$where

|prfc(i)|: reference values for pre-selection of fixed code vectors

k: element number of a vector (0≦k≦Ns−1)

i: number of a fixed code vector (0≦i≦Nfc−1)

Nfc: the number of fixed code vectors (=16)

Pfcb(i,k): fixed code vectors

rh(k): time reverse synthesized vectors of the target vector rh(k).

By comparing the values |prfc(i)| of the equation the top Nfcb (=2)indices when the values become large and the absolute values of innerproducts with the indices used as arguments are selected and arerespectively saved as indices of fixed code vectors after pre-selectionfpsel(j) (0≦j≦Nfcb−1) and reference values for fixed code vectors afterpre-selection |prfc(fpsel(j)|, and indices of fixed code vectors afterpre-selection fpsel(j) (0≦j≦Nfcb−1) are output to the adaptive/fixedselector 1320.

The perceptual weighted LPC synthesis filter A 1321 performs perceptualweighted LPC synthesis on fixed code vectors after pre-selectionPfcb(fpsel(j),k) which have been read from the fixed code vector readingsection 1324 and have passed the adaptive/fixed selector 1320, togenerate synthesized fixed code vectors SYNfcb(fpsel(i),k) which are inturn sent to the comparator A 1322.

The comparator A 1322 further acquires a reference value forfinal-selection of a fixed code vector sfcbr(j) from an equation 16 tofinally select an optimal fixed code vector from the Nfcb (=2) fixedcode vectors after pre-selection Pfcb(fpsel(j),k), pre-selected by thecomparator A 1322 itself. $\begin{matrix}{{{sfcbr}(j)} = \frac{{{prfc}( {{fpsel}(j)} }^{2}}{\sum\limits_{k = 0}^{{Ns} - 1}\quad{{SYNfcb}^{2}( {j,k} )}}} & (16)\end{matrix}$where

sfcbr(j): reference value for final-selection of a fixed code vector

|prfc( )|: reference values after pre-selection of fixed code vectors

fpsel(j): indices of fixed code vectors after pre-selection (0≦j≦Nfcb−1)

k: element number of a vector (0≦k≦Ns−1)

j: number of a pre-selected fixed code vector (0≦j≦Nfcb−1)

Ns: subframe length (=52)

Nfcb: the number of pre-selected fixed code vectors (=2)

SYNfcb(J,K): synthesized fixed code vectors.

The index when the value of the equation 16 becomes large and the valueof the equation 16 with the index used as an argument are sent to theadaptive/fixed selector 1320 respectively as an index of fixed codevector after final-selection FSEL and a reference value afterfinal-selection of a fixed code vector sacbr(FSEL).

The adaptive/fixed selector 1320 selects either the adaptive code vectorafter final-selection or the fixed code vector after final-selection asan adaptive/fixed code vector AF(k) (0≦k≦Ns−1) in accordance with thesize relation and the polarity relation among prac(ASEL), sacbr(ASEL),|prfc(FSEL)| and sfcbr(FSEL) (described in an equation 17) received fromthe comparator A 1322. $\begin{matrix}{{{AF}(k)} = \{ \begin{matrix}{{Pacb}( {{ASEL},k} )} & {{{{sacbr}({ASEL})} \geq {{sfcbr}({FSEL})}},{{{prac}({ASEL})} > 0}} \\0 & {{{{sacbr}({ASEL})} \geq {{sfcbr}({FSEL})}},{{{prac}({ASEL})} \leq 0}} \\{{Pfcb}( {{FSEL},k} )} & {{{{sacbr}({ASEL})} < {{sfcbr}({FSEL})}},{{{prfc}({FSEL})} \geq 0}} \\{- {{Pfcb}( {{FSEL},k} )}} & {{{{sacbr}({ASEL})} < {{sfcbr}({FSEL})}},{{{prfc}({FSEL})} < 0}}\end{matrix} } & (17)\end{matrix}$where

AF(k): adaptive/fixed code vector

ASEL: index of adaptive code vector after final-selection

FSEL: index of fixed code vector after final-selection

k: element number of a vector

Pacb(ASEL,k): adaptive code vector after final-selection

Pfcb(FSEL,k): fixed code vector after final-selection Pfcb(FSEL,k)

sacbr(ASEL): reference value after final-selection of an adaptive codevector

sfcbr(FSEL): reference value after final-selection of a fixed codevector

prac(ASEL): reference values after pre-selection of adaptive codevectors

prfc(FSEL): reference values after pre-selection of fixed code vectorsprfc(FSEL).

The selected adaptive/fixed code vector AF(k) is sent to the perceptualweighted LPC synthesis filter A 1321 and an index representing thenumber that has generated the selected adaptive/fixed code vector AF(k)is sent as an adaptive/fixed index AFSEL to the parameter coding section1331. As the total number of adaptive code vectors and fixed codevectors is designed to be 255 (see Table 6), the adaptive/fixed indexAFSEL is a code of 8 bits.

The perceptual weighted LPC synthesis filter A 1321 performs perceptualweighted LPC synthesis on the adaptive/fixed code vector AF(k), selectedby the adaptive/fixed selector 1320, to generate a synthesizedadaptive/fixed code vector SYNaf(k) (0≦k≦Ns−1) and sends it to thecomparator A 1322.

The comparator A 1322 first obtains the power powp of the synthesizedadaptive/fixed code vector SYNaf(k) (0≦k≦Ns−1) received from theperceptual weighted LPC synthesis filter A 1321 using an equation 18.$\begin{matrix}{{powp} = {\sum\limits_{k = 0}^{{Ns} - 1}{{SYNaf}^{\quad 2}(k)}}} & (18)\end{matrix}$where

powm: power of adaptive/fixed code vector (SYNaf(k))

k: element number of a vector (0≦k≦Ns−1)

Ns: subframe length (=52)

SYNaf(k): adaptive/fixed code vector.

Then, the inner product pr of the target vector received from the targetvector generator A 1316 and the synthesized adaptive/fixed code vectorSYNaf(k) is acquired from an equation 19. $\begin{matrix}{{pr} = {\sum\limits_{k = 0}^{{Ns} - 1}{{{SYNaf}(k)} \times {r(k)}}}} & (19)\end{matrix}$where

pr: inner product of SYNaf(k) and r(k)

Ns: subframe length (=52)

SYNaf(k): adaptive/fixed code vector

r(k): target vector

k: element number of a vector (0≦k≦Ns−1).

Further, the adaptive/fixed code vector AF(k) received from theadaptive/fixed selector 1320 is sent to an adaptive codebook updatingsection 1333 to compute the power POWaf of AF(k), the synthesizedadaptive/fixed code vector SYNaf(k) and POWaf are sent to the parametercoding section 1331, and powp, pr, r(k) and rh(k) are sent to acomparator B 1330.

The target vector generator B 1325 subtracts the synthesizedadaptive/fixed code vector SYNaf(k), received from the comparator A1322, from the target vector r(i) (0≦i≦Ns−1) received from thecomparator A 1322, to generate a new target vector, and sends the newtarget vector to the perceptual weighted LPC reverse synthesis filter B1326.

The perceptual weighted LPC reverse synthesis filter B 1326 sorts thenew target vectors, generated by the target vector generator B 1325, ina time reverse order, sends the sorted vectors to the perceptualweighted LPC synthesis filter in a zero state, the output vectors aresorted again in a time reverse order to generate time-reversedsynthesized vectors ph(k) (0≦k≦Ns−1) which are in turn sent to thecomparator B 1330.

An excitation vector generator 1337 in use is the same as, for example,the excitation vector generator 70 which has been described in thesection of the third mode. The excitation vector generator 70 generatesa random code vector as the first seed is read from the seed storagesection 71 and input to the non-linear digital filter 72. The randomcode vector generated by the excitation vector generator 70 is sent tothe perceptual weighted LPC synthesis filter B 1329 and the comparator B1330. Then, as the second seed is read from the seed storage section 71and input to the non-linear digital filter 72, a random code vector isgenerated and output to the filter B 1329 and the comparator B 1330.

To pre-select random code vectors generated based on the first seed toNstb (=6) candidates from Nst (=64) candidates, the comparator B 1330acquires reference values cr(i1) (0≦i1≦Nstb1−1) for pre-selection offirst random code vectors from an equation 20. $\begin{matrix}{{{cr}( {i\quad 1} )} = {{\sum\limits_{j = 0}^{{Ns} - 1}{{Pstb}\quad 1( {i\quad 1j} ) \times {{rh}(j)}}} - {\frac{pr}{powp}{\sum\limits_{j = 0}^{{Ns} - 1}{{Pstb}\quad 1( {i\quad 1\quad j} ) \times {{ph}(j)}}}}}} & (20)\end{matrix}$where

cr(i1): reference values for pre-selection of first random code vectors

Ns: subframe length (=52)

rh(j): time reverse synthesized vector of a target vector (r(j))

powp: power of an adaptive/fixed vector (SYNaf(k))

pr: inner product of SYNaf(k) and r(k)

Pstb1(i1,j): first random code vector

ph(j): time reverse synthesized vector of SYNaf(k)

i1: number of the first random code vector (0≦i1≦Nst−1)

j: element number of a vector.

By comparing the obtained values cr(i1), the top Nstb (=6) indices whenthe values become large and inner products with the indices used asarguments are selected and are respectively saved as indices of firstrandom code vectors after pre-selection s1psel(j1) (0≦j1≦Nstb−1) andfirst random code vectors after pre-selection Pstb1(s1psel(j1),k)(0≦j1≦Nstb−1, 0≦k≦Ns−1). Then, the same process as done for the firstrandom code vectors is performed for second random code vectors andindices and inner products are respectively saved as indices of secondrandom code vectors after pre-selection s1psel(j2) (0≦j2≦Nstb−1) andsecond random code vectors after pre-selection Pstb2(s2psel(j2),k)(0≦j2≦Nstb−1, 0≦k≦Ns−1).

The perceptual weighted LPC synthesis filter B 1329 performs perceptualweighted. LPC synthesis on the first random code vectors afterpre-selection Pstb1(s1psel(j1),k) to generate synthesized first randomcode vectors SYNstb1(s1psel(j1),k) which are in turn sent to thecomparator B 1330. Then, perceptual weighted LPC synthesis is performedon the second random code vectors after pre-selectionPstb2(s1psel(j2),k) to generate synthesized second random code vectorsSYNstb2(s2psel(j2),k) which are in turn sent to the comparator B 1330.

To implement final-selection on the first random code vectors afterpre-selection Pstb1(s1psel(j1),k) and the second random code vectorsafter pre-selection Pstb2(s1psel(j2),k), pre-selected by the comparatorB 1330 itself, the comparator B 1330 carries out the computation of anequation 21 on the synthesized first random code vectorsSYNstb1(s1psel(i1),k) computed in the perceptual weighted LPC synthesisfilter B 1329. $\begin{matrix}{{{SYNOstb}\quad 1( {{s\quad 1{{psel}( {j\quad 1} )}},k} )} = {{{SYNstb}\quad 1( {{s\quad 1{{psel}( {j\quad 1} )}},k} )} - {\frac{{SYNaf}( {j\quad 1} )}{powp}{\sum\limits_{k = 0}^{{Ns} - 1}\quad{{Pstb}\quad 1( {{s\quad 1{{psel}( {j\quad 1} )}},k} ) \times {{ph}(k)}}}}}} & (21)\end{matrix}$where

SYNOstb1(s1psel(j1),k): orthogonally synthesized first random codevector

SYNstb1(s1psel(j1),k): synthesized first random code vector

Pstb1(s1psel(j1),k): first random code vector after pre-selection

SYNaf(j): adaptive/fixed code vector

powp: power of adaptive/fixed code vector (SYNaf(j))

Ns: subframe length (=52)

ph(k): time reverse synthesized vector of SYNaf(j)

j1: number of first random code vector after pre-selection

k: element number of a vector (0≦k≦Ns−1).

Orthogonally synthesized first random code vectorsSYNOstb1(s1psel(j1),k) are obtained, and a similar computation isperformed on the synthesized second random code vectorsSYNstb2(s2psel(j2),k) to acquire orthogonally synthesized second randomcode vectors SYNOstb2(s2psel(j2),k), and reference values afterfinal-selection of a first random code vector s1cr and reference valuesafter final-selection of a second random code vector s2cr are computedin a closed loop respectively using equations 22 and 23 for all thecombinations (36 combinations) of (s1psel(j1), s2psel(j2)).$\begin{matrix}{{{scr}\quad 1} = \frac{{cscr}\quad 1^{2}}{\sum\limits_{k = 0}^{{Ns} - 1}\lbrack {{{SYNOstb}\quad 1( {{s\quad 1{{psel}( {j\quad 1} )}},k} )} + {{SYNOstb}\quad 2( {{s\quad 2{{psel}( {j2} )}},k} )}} \rbrack^{2}}} & (22)\end{matrix}$where

scr1: reference value after final-selection of a first random codevector

cscr1: constant previously computed from an equation 24

SYNOstb1(s1psel(j1),k): orthogonally synthesized first random codevectors.

SYNOstb2(s2psel(j2),k): orthogonally synthesized second random codevectors

r(k): target vector

s1psel(j1): index of first random code vector after pre-selection

s2psel(j2): index of second random code vector after pre-selection

Ns: subframe length (=52)

k: element number of a vector. $\begin{matrix}{{{scr}\quad 2} = \frac{{cscr}\quad 2^{2}}{\sum\limits_{k = 0}^{{Ns} - 1}\quad\lbrack {{SYNOstb}\quad 1( {{s\quad 1{{psel}( {j\quad 1} )}},{k - {{SYNOstb}\quad 2( {{s\quad 2{{psel}( {j\quad 2} )}},k} )}}} \rbrack^{2}} }} & (23)\end{matrix}$where

scr2: reference value after final-selection of a second random codevector

cscr2: constant previously computed from an equation

SYNOstb1(s1psel(j1),k): orthogonally synthesized first random codevectors

SYNOstb2(s2psel(j2),k): orthogonally synthesized second random codevectors

r(k): target vector

s1psel(j1): index of first random code vector after pre-selection

s2psel(j2): index of second random code vector after pre-selection

Ns: subframe length (=52)

k: element number of a vector.

Note that cs1cr in the equation 22 and cs2cr in the equation 23 areconstants which have been calculated previously using the equations 24and 25, respectively. $\begin{matrix}{{{cscr}\quad 1} = {\sum\limits_{k = 0}^{{Ns} - 1}\quad{{SYNOstb}\quad 1( {{s\quad 1{{psel}( {j\quad 1} )}},k} ) \times {{r(k)} \div {\sum\limits_{K = 0}^{{Ns} - 1}\quad{{SYNOstb}\quad 2( {{s\quad 2{{psel}( {j\quad 2} )}},k} ) \times {r(k)}}}}}}} & (24)\end{matrix}$where

cscr1: constant for an equation 29

SYNOstb1(s1psel(j1),k): orthogonally synthesized first random codevectors

SYNOstb2(s2psel(j2),k): orthogonally synthesized second random codevectors

r(k): target vector

s1psel(j1): index of first random code vector after pre-selection

s2psel(j2): index of second random code vector after pre-selection

Ns: subframe length (=52)

k: element number of a vector. $\begin{matrix}{{{cscr}\quad 1} = {{\sum\limits_{k = 0}^{{Ns} - 1}\quad{{SYNOstb}\quad 1( {{s\quad 1{{psel}( {j\quad 1} )}},k} ) \times {r(k)}}} - {\sum\limits_{K = 0}^{{Ns} - 1}\quad{{SYNOstb}\quad 2( {{s\quad 2{{psel}( {j\quad 2} )}},k} ) \times {r(k)}}}}} & (25)\end{matrix}$where

cscr2: constant for the equation 23

SYNOstb1(s1psel(j1),k): orthogonally synthesized first random codevectors

SYNOstb2(s2psel(j2),k): orthogonally synthesized second random codevectors

r(k): target vector

s1psel(j1): index of first random code vector after pre-selection

s2psel(j2): index of second random code vector after pre-selection

Ns: subframe length (=52)

k: element number of a vector.

The comparator B 1330 substitutes the maximum value of S1cr in MAXs1cr,substitutes the maximum value of S2cr in MAXs2cr, sets MAXs1cr orMAXs2cr, whichever is larger, as scr, and sends the value of s1psel(j1),which had been referred to when scr was obtained, to the parametercoding section 1331 as an index of a first random code vector afterfinal-selection SSEL1. The random code vector that corresponds to SSEL1is saved as a first random code vector after final-selectionPstb1(SSEL1,k), and is sent to the parameter coding section 1331 toacquire a first random code vector after final-selectionSYNstb1(SSEL1,k) (0≦k≦Ns−1) corresponding to Pstb1(SSEL1,k).

Likewise, the value of s2psel(j2), which had been referred to when scrwas obtained, to the parameter coding section 1331 as an index of asecond random code vector after final-selection SSEL2. The random codevector that corresponds to SSEL2 is saved as a second random code vectorafter final-selection Pstb2(SSEL2,k), and is sent to the parametercoding section 1331 to acquire a second random code vector afterfinal-selection SYNstb2(SSEL2,k) (0≦k≦Ns−1) corresponding toPstb2(SSEL2,k).

The comparator B 1330 further acquires codes S1 and S2 by whichPstb1(SSEL1,k) and Pstb2(SSEL2,k) are respectively multiplied, from anequation 26, and sends polarity information Is1s2 of the obtained S1 andS2 to the parameter coding section 1331 as a gain polarity index Is1s2(2-bit information). $\begin{matrix}{( {{S\quad 1},{S\quad 2}} ) = \{ \begin{matrix}( {{+ 1},{+ 1}} ) & {{{{scr}\quad 1} \geq {{scr}\quad 2}},{{{cscr}\quad 1} \geq 0}} \\( {{- 1},{- 1}} ) & {{{{scr}\quad 1} \geq {{scr}\quad 2}},{{{cscr}\quad 1} < 0}} \\( {{+ 1},{- 1}} ) & {{{{scr}\quad 1} < {{scr}\quad 2}},{{{cscr}\quad 2} \geq 0}} \\( {{- 1},{+ 1}} ) & {{{{scr}\quad 1} < {{scr}\quad 2}},{{{cscr}\quad 2} < 0}}\end{matrix} } & (26)\end{matrix}$where

S1: code of the first random code vector after final-selection

S2: code of the second random code vector after final-selection

scr1: output of the equation 29

scr2: output of the equation 23

cscr1: output of the equation 24

cscr2: output of the equation 25.

A random code vector ST(k) (0≦k≦Ns−1) is generated by an equation 27 andoutput to the adaptive codebook updating section 1333, and its powerPOWsf is acquired and output to the parameter coding section 1331.ST(k)=S1×Pstb1(SSEL1, k)÷S2×Pstb2(SSEL2, k)  (27)where

ST(k): probable code vector

S1: code of the first random code vector after final-selection

S2: code of the second random code vector after final-selection

Pstb1(SSEL1,k): first-stage settled code vector after final-selection

Pstb1(SSEL2,k): second-stage settled code vector after final-selection

SSEL1: index of the first random code vector after final-selection

SSEL2: second random code vector after final-selection

k: element number of a vector (0≦k≦Ns−1).

A synthesized random code vector SYNst(k) (0≦k≦Ns−1) is generated by anequation 28 and output to the parameter coding section 1331.SYNst(k)=S1×SYNstb1(SSEL1, k)+S2×SYNstb2(SSEL2, k)  (28)where

STNst(k): synthesized probable code vector

S1: code of the first random code vector after final-selection

S2: code of the second random code vector after final-selection

SYNstb1(SSEL1,k): synthesized first random code vector afterfinal-selection

SYNstb2(SSEL2,k): synthesized second random code vector afterfinal-selection

k: element number of a vector (0≦k≦Ns−1).

The parameter coding section 1331 first acquires a residual powerestimation for each subframe rs is acquired from an equation 29 usingthe decoded frame power spow which has been obtained by the frame powerquantizing/decoding section 1302 and the normalized predictive residualpower resid, which has been obtained by the pitch pre-selector 1308.rs=Ns×spow×resid  (29)where

rs: residual power estimation for each subframe

Ns: subframe length (=52)

spow: decoded frame power

resid: normalized predictive residual power.

A reference value for quantization gain selection STDg is acquired froman equation 30 by using the acquired residual power estimation for eachsubframe rs, the power of the adaptive/fixed code vector POWaf computedin the comparator A 1322, the power of the random code vector POWstcomputed in the comparator B 1330, a gain quantization table(CGaf[i],CGst[i]) (0≦i≦127) of 256 words stored in a gain quantizationtable storage section 1332 and the like. TABLE 7 Gain quantization tablei CGaf(i) CGst(i) 1 0.38590 0.23477 2 0.42380 0.50453 3 0.23416 0.24761126 0.35382 1.68987 127 0.10689 1.02035 128 3.09711 1.75430 (30)${STDg} = {\sum\limits_{k = 0}^{{Ns} - 1}( {{\sqrt{\frac{rs}{POWaf} \cdot}{{CGaf}({Ig})} \times {{SYNaf}(k)}} +} }$$ {{\sqrt{\frac{rs}{POWst} \cdot}{{CGst}({Ig})} \times {{SYNst}(k)}} - {r(k)}} )^{2}$where

STDg: reference value for quantization gain selection

rs: residual power estimation for each subframe

POWaf: power of the adaptive/fixed code vector

POWSst: power of the random code vector

i: index of the gain quantization table (0≦i≦127)

CGaf(i): component on the adaptive/fixed code vector side in the gainquantization table

CGst(i): component on the random code vector side in the gainquantization table

SYNaf(k): synthesized adaptive/fixed code vector

SYNst(k): synthesized random code vector

r(k): target vector

Ns: subframe length (=52)

k: element number of a vector (0≦k≦Ns−1).

One index when the acquired reference value for quantization gainselection STDg becomes minimum is selected as a gain quantization indexIg, a final gain on the adaptive/fixed code vector side Gaf to beactually applied to AF(k) and a final gain on the random code vectorside Gst to be actually applied to ST(k) are obtained from an equation31 using a gain after selection of the adaptive/fixed code vectorCGaf(Ig), which is read from the gain quantization table based on theselected gain quantization index Ig, a gain after selection of therandom code vector CGst(Ig), which is read from the gain quantizationtable based on the selected gain quantization index Ig and so forth, andare sent to the adaptive codebook updating section 1333. $\begin{matrix}{( {{Gaf},{Gst}} ) = ( {{\sqrt{\frac{rs}{POWaf}}{{CGaf}({Ig})}},{\sqrt{\frac{rs}{POWst}}{{CGst}({IG})}}} )} & (31)\end{matrix}$where

Gaf: final gain on the adaptive/fixed code vector side.

Gst: final gain on the random code vector side Gst

rs: residual power estimation for each subframe

POWaf: power of the adaptive/fixed code vector

POWst: power of the random code vector

CGaf(Ig): power of a fixed/adaptive side code vector

CGst(Ig): gain after selection of a random code vector side

Ig: gain quantization index.

The parameter coding section 1331 converts the index of power Ipow,acquired by the frame power quantizing/decoding section 1302, the LSPcode Ilsp, acquired by the LSP quantizing/decoding section 1306, theadaptive/fixed index AFSEL, acquired by the adaptive/fixed selector1320, the index of the first random code vector after final-selectionSSEL1, the second random code vector after final-selection SSEL2 and thepolarity information Is1s2, acquired by the comparator B 1330, and thegain quantization index Ig, acquired by the parameter coding section1331, into a speech code, which is in turn sent to a transmitter 1334.

The adaptive codebook updating section 1333 performs a process of anequation 32 for multiplying the adaptive/fixed code vector AF(k),acquired by the comparator A 1322, and the random code vector ST(k),acquired by the comparator B 1330, respectively by the final gain on theadaptive/fixed code vector side Gaf and the final gain on the randomcode vector side Gst, acquired by the parameter coding section 1331, andthen adding the results to thereby generate an excitation vector ex(k)(0≦k≦Ns−1), and sends the generated excitation vector ex(k) (0≦k≦Ns−1)to the adaptive codebook 1318.ex(k)=Gaf×AF(k)+Gst×ST(k)  (32)where

ex(k): excitation vector

AF(k): adaptive/fixed code vector

ST(k): random code vector

k: element number of a vector (0≦k≦Ns−1).

At this time, an old excitation vector in the adaptive codebook 1318 isdiscarded and is updated with a new excitation vector ex(k) receivedfrom the adaptive codebook updating section 1333.

(Eighth Mode)

A description will now be given of an eighth mode in which anyexcitation vector generator described in first to sixth modes is used ina speech decoder that is based on the PSI-CELP, the standard speechcoding/decoding system for PDC digital portable telephones. This decodermakes a pair with the above-described seventh mode.

FIG. 14 presents a functional block diagram of a speech decoderaccording to the eighth mode. A parameter decoding section 1402 obtainsthe speech code (the index of power Ipow, LSP code Ilsp, adaptive/fixedindex AFSEL, index of the first random code vector after final-selectionSSEL1, second random code vector after final-selection SSEL2, gainquantization index Ig and gain polarity index Is1s2), sent from the CELPtype speech coder illustrated in FIG. 13, via a transmitter 1401.

Next, a scalar value indicated by the index of power Ipow is read fromthe power quantization table (see Table 3) stored in a powerquantization table storage section 1405, is sent as decoded frame powerspow to a power restoring section 1417, and a vector indicated by theLSP code Ilsp is read from the LSP quantization table an LSPquantization table storage section 1404 and is sent as a decoded LSP toan LSP interpolation section 1406. The adaptive/fixed index AFSEL issent to an adaptive code vector generator 1408, a fixed code vectorreading section 1411 and an adaptive/fixed selector 1412, and the indexof the first random code vector after final-selection SSEL1 and thesecond random code vector after final-selection SSEL2 are output to anexcitation vector generator 1414. The vector (CAaf(Ig), CGst(Ig))indicated by the gain quantization index Ig is read from the gainquantization table (see Table 7) stored in a gain quantization tablestorage section 1403, the final gain on the final gain on theadaptive/fixed code vector side Gaf to be actually applied to AF(k) andthe final gain on the random code vector side Gst to be actually appliedto ST(k) are acquired from the equation 31 as done on the coder side,and the acquired final gain on the adaptive/fixed code vector side Gafand final gain on the random code vector side Gst are output togetherwith the gain polarity index Is1s2 to an excitation vector generator1413.

The LSP interpolation section 1406 obtains a decoded interpolated LSPωintp(n,i) (1≦i≦Np) subframe by subframe from the decoded LSP receivedfrom the parameter decoding section 1402, converts the obtainedωintp(n,i) to an LPC to acquire a decoded interpolated LPC, and sendsthe decoded interpolated LPC to an LPC synthesis filter 1416.

The adaptive code vector generator 1408 convolute some of polyphasecoefficients stored in a polyphase coefficients storage section 1409(see Table 5) on vectors read from an adaptive codebook 1407, based onthe adaptive/fixed index AFSEL received from the parameter decodingsection 1402, thereby generating adaptive code vectors to a fractionalprecision, and sends the adaptive code vectors to the adaptive/fixedselector 1412. The fixed code vector reading section 1411 reads fixedcode vectors from a fixed codebook 1410 based on the adaptive/fixedindex AFSEL received from the parameter decoding section 1402, and sendsthem to the adaptive/fixed selector 1412.

The adaptive/fixed selector 1412 selects either the adaptive code vectorinput from the adaptive code vector generator 1408 or the fixed codevector input from the fixed code vector reading section 1411, as theadaptive/fixed code vector AF(k), based on the adaptive/fixed indexAFSEL received from the parameter decoding section 1402, and sends theselected adaptive/fixed code vector AF(k) to the excitation vectorgenerator 1413. The excitation vector generator 1414 acquires the firstseed and second seed from the seed storage section 71 based on the indexof the first random code vector after final-selection SSEL1 and thesecond random code vector after final-selection SSEL2 received from theparameter decoding section 1402, and sends the seeds to the non-lineardigital filter 72 to generate the first random code vector and thesecond random code vector, respectively. Those reproduced first randomcode vector and second random code vector are respectively multiplied bythe first-stage information S1 and second-stage information S2 of thegain polarity index to generate an excitation vector ST(k), which issent to the excitation vector generator 1413.

The excitation vector generator 1413 multiplies the adaptive/fixed codevector AF(k), received from the adaptive/fixed selector 1412, and theexcitation vector ST(k), received from the excitation vector generator1414, respectively by the final gain on the adaptive/fixed code vectorside Gaf and the final gain on the random code vector side Gst, obtainedby the parameter decoding section 1402, performs addition or subtractionbased on the gain polarity index Is1s2, yielding the excitation vectorex(k), and sends the obtained excitation vector to the excitation vectorgenerator 1413 and the adaptive codebook 1407. Here, an old excitationvector in the adaptive codebook 1407 is updated with a new excitationvector input from the excitation vector generator 1413.

The LPC synthesis filter 1416 performs LPC synthesis on the excitationvector, generated by the excitation vector generator 1413, using thesynthesis filter which is constituted by the decoded interpolated LPCreceived from the LSP interpolation section 1406, and sends the filteroutput to the power restoring section 1417. The power restoring section1417 first obtains the mean power of the synthesized vector of theexcitation vector obtained by the LPC synthesis filter 1416, thendivides the decoded frame power spow, received from the parameterdecoding section 1402, by the acquired mean power, and multiplies thesynthesized vector of the excitation vector by the division result togenerate a synthesized speech 518.

(Ninth Mode)

FIG. 15 is a block diagram of the essential portions of a speech coderaccording to a ninth mode. This speech coder has a quantization targetLSP adding section 151, an LSP quantizing/decoding section 152, a LSPquantization error comparator 153 added to the speech coder shown inFIG. 13 or parts of its functions modified.

The LPC analyzing section 1304 acquires an LPC by performing linearpredictive analysis on a processing frame in the buffer 1301, convertsthe acquired LPC to produce a quantization target LSP, and sends theproduced quantization target LSP to the quantization target LSP addingsection 151. The LPC analyzing section 1304 also has a particularfunction of performing linear predictive analysis on a pre-read area toacquire an LPC for the pre-read area, converting the obtained LPC to anLSP for the pre-read area, and sending the LSP to the quantizationtarget LSP adding section 151.

The quantization target LSP adding section 151 produces a plurality ofquantization target LSPs in addition to the quantization target LSPsdirectly obtained by converting LPCs in a processing frame in the LPCanalyzing section 1304.

The LSP quantization table storage section 1307 stores the quantizationtable which is referred to by the LSP quantizing/decoding section 152,and the LSP quantizing/decoding section 152 quantizes/decodes theproduced plurality of quantization target LSPs to generate decoded LSPs.

The LSP quantization error comparator 153 compares the produced decodedLSPs with one another to select, in a closed loop, one decoded LSP whichminimizes an allophone, and newly uses the selected decoded LSP as adecoded LSP for the processing frame.

FIG. 16 presents a block diagram of the quantization target LSP addingsection 151.

The quantization target LSP adding section 151 comprises a current frameLSP memory 161 for storing the quantization target LSP of the processingframe obtained by the LPC analyzing section 1304, a pre-read area LSPmemory 162 for storing the LSP of the pre-read area obtained by the LPCanalyzing section 1304, a previous frame LSP memory 163 for storing thedecoded LSP of the previous processing frame, and a linear interpolationsection 164 which performs linear interpolation on the LSPs read fromthose three memories to add a plurality of quantization target LSPs.

A plurality of quantization target LSPs are additionally produced byperforming linear interpolation on the quantization target LSP of theprocessing frame and the LSP of the pre-read, and produced quantizationtarget LSPs are all sent to the LSP quantizing/decoding section 152.

The quantization target LSP adding section 151 will now be explainedmore specifically. The LPC analyzing section 1304 performs linearpredictive analysis on the processing frame in the buffer to acquire anLPC α(i) (1≦i≦Np) of a prediction order Np (=10), converts the obtainedLPC to generate a quantization target LSP ω(i) (1≦i≦Np), and stores thegenerated quantization target LSP ω(i) (1≦i≦Np) in the current frame LSPmemory 161 in the quantization target LSP adding section 151. Further,the LPC analyzing section 1304 performs linear predictive analysis onthe pre-read area in the buffer to acquire an LPC for the pre-read area,converts the obtained LPC to generate a quantization target LSP ωf(i)(1≦i≦Np), and stores the generated quantization target LSP ω(i) (1≦i≦Np)for the pre-read area in the pre-read area LSP memory 162 in thequantization target LSP adding section 151.

Next, the linear interpolation section 164 reads the quantization targetLSP ω(i) (1≦i≦Np) for the processing frame from the current frame LSPmemory 161, the LSP ωf(i) (1≦i≦Np) for the pre-read area from thepre-read area LSP memory 162, and decoded LSP ωqp(i) (1≦i≦Np) for theprevious processing frame from the previous frame LSP memory 163, andexecutes conversion shown by an equation 33 to respectively generatefirst additional quantization target LSP ω1(i) (1≦i≦Np), secondadditional quantization target LSP ω2(i) (1≦i≦Np), and third additionalquantization target LSP ω1(i) (1≦i≦Np). $\begin{matrix}{\begin{bmatrix}\begin{matrix}{\omega\quad 1(i)} \\{\omega\quad 2(i)}\end{matrix} \\{\omega\quad 3(i)}\end{bmatrix} = {\begin{bmatrix}0.8 & 0.2 & 0.0 \\0.5 & 0.3 & 0.2 \\0.8 & 0.3 & 0.5\end{bmatrix}\begin{bmatrix}\begin{matrix}{\omega\quad{q(i)}} \\{\omega\quad q\quad{p(i)}}\end{matrix} \\{\omega\quad{f(i)}}\end{bmatrix}}} & (33)\end{matrix}$where

ω1(i): first additional quantization target LSP

ω2(i): second additional quantization target LSP

ω3(i): third additional quantization target LSP

i: LPC order (1≦i≦Np)

Np: LPC analysis order (=10)

ωq(i); decoded LSP for the processing frame

ωqp(i); decoded LSP for the previous processing frame

ωf(i): LSP for the pre-read area.

The generated ω1(i), ω2(i) and ω3(i) are sent to the LSPquantizing/decoding section 152. After performing vectorquantization/decoding of all the four quantization target LSPs ω(i),ω1(i), ω2(i) and ω3(i), the LSP quantizing/decoding section 152 acquirespower Epow(ω) of an quantization error for ω(i), power Epow(ω1) of anquantization error for ω1(i), power Epow(ω2) of an quantization errorfor ω2(i), and power Epow(ω3) of an quantization error for ω3(i),carries out conversion of an equation 34 on the obtained quantizationerror powers to acquire reference values STDlsp(ω), STDlsp(ω1),STDlsp(ω2) and STDlsp(ω3) for selection of a decoded LSP.$\begin{matrix}{\begin{bmatrix}{STDlsp} & {(\omega)} \\{STDlsp} & ( {\omega\quad 1} ) \\{STDlsp} & ( {\omega\quad 2} ) \\{STDlsp} & ( {\omega\quad 3} )\end{bmatrix} = {\begin{bmatrix}{Epow} & {(\omega)} \\{Epow} & ( {\omega\quad 1} ) \\{Epow} & ( {\omega\quad 2} ) \\{Epow} & ( {\omega\quad 3} )\end{bmatrix} - \begin{bmatrix}\begin{matrix}\begin{matrix}0.0010 \\0.0005\end{matrix} \\0.0002\end{matrix} \\0.0000\end{bmatrix}}} & (34)\end{matrix}$where

STDlsp(ω): reference value for selection of a decoded LSP for ω(i)

STDlsp(ω1): reference value for selection of a decoded LSP for ω1(i)

STDlsp(ω2): reference value for selection of a decoded LSP for ω2(i)

STDlsp(ω3): reference value for selection of a decoded LSP for ω3(i)

Epow(ω): quantization error power for ω(i)

Epow(ω1): quantization error power for ω1(i)

Epow(ω2): quantization error power for ω2(i)

Epow(ω3): quantization error power for ω3(i).

The acquired reference values for selection of a decoded LSP arecompared with one another to select and output the decoded LSP for thequantization target LSP that becomes minimum as a decoded LSP ωq(i)(1≦i≦Np) for the processing frame, and the decoded LSP is stored in theprevious frame LSP memory 163 so that it can be referred to at the timeof performing vector quantization of the LSP of the next frame.

According to this mode, by effectively using the high interpolationcharacteristic of an LSP (which does not cause an allophone evensynthesis is implemented by using interpolated LSPs), vectorquantization of LSPs can be so conducted as not to produce an allophoneeven for an area like the top of a word where the spectrum variessignificantly. It is possible to reduce an allophone in a synthesizedspeech which may occur when the quantization characteristic of an LSPbecomes insufficient.

FIG. 17 presents a block diagram of the LSP quantizing/decoding section152 according to this mode. The LSP quantizing/decoding section 152 hasa gain information storage section 171, an adaptive gain selector 172, again multiplier 173, an LSP quantizing section 174 and an LSP decodingsection 175.

The gain information storage section 171 stores a plurality of gaincandidates to be referred to at the time the adaptive gain selector 172selects the adaptive gain. The gain multiplier 173 multiplies a codevector, read from the LSP quantization table storage section 1307, bythe adaptive gain selected by the adaptive gain selector 172. The LSPquantizing section 174 performs vector quantization of a quantizationtarget LSP using the code vector multiplied by the adaptive gain. TheLSP decoding section 175 has a function of decoding a vector-quantizedLSP to generate a decoded LSP and outputting it, and a function ofacquiring an LSP quantization error, which is a difference between thequantization target LSP and the decoded LSP, and sending it to theadaptive gain selector 172. The adaptive gain selector 172 acquires theadaptive gain by which a code vector is multiplied at the time ofvector-quantizing the quantization target LSP of the processing frame byadaptively adjusting the adaptive gain based on gain generationinformation stored in the gain information storage section 171, on thebasis of, as references, the level of the adaptive gain by which a codevector is multiplied at the time the quantization target LSP of theprevious processing frame was vector-quantized and the LSP quantizationerror for the previous frame, and sends the obtained adaptive gain tothe gain multiplier 173.

The LSP quantizing/decoding section 152 performs vector-quantizes anddecodes a quantization target LSP while adaptively adjusting theadaptive gain by which a code vector is multiplied in the above manner.

The LSP quantizing/decoding section 152 will now be discussed morespecifically. The gain information storage section 171 is storing fourgain candidates (0.9, 1.0, 1.1 and 1.2) to which the adaptive gainselector 172 refers. The adaptive gain selector 172 acquires a referencevalue for selecting an adaptive gain, Slsp, from an equation 35 fordividing power ERpow, generated at the time of quantizing thequantization target LSP of the previous frame, by the square of anadaptive gain Gqlsp selected at the time of vector-quantizing thequantization target LSP of the previous processing frame.$\begin{matrix}{{Slsp} = \frac{ERpow}{{Gqlsp}^{2}}} & (35)\end{matrix}$where

Slsp: reference value for selecting an adaptive gain

ERpow: quantization error power generated when quantizing the LSP of theprevious frame

Gqlsp: adaptive gain selected when vector-quantizing the LSP of theprevious frame.

One gain is selected from the four gain candidates (0.9, 1.0, 1.1 and1.2), read from the gain information storage section 171, from anequation 36 using the acquired reference value Slsp for selecting theadaptive gain. Then, the value of the selected adaptive gain Gqlsp issent to the gain multiplier 173, and information (2-bit information) forspecifying type of the selected adaptive gain from the four types issent to the parameter coding section. $\begin{matrix}{{Glsp} = \{ \begin{matrix}1.2 & {{Slsp} > 0.0025} \\1.1 & {{Slsp} > 0.0015} \\1.0 & {{Slsp} > 0.0008} \\0.9 & {{Slsp} \leq 0.0008}\end{matrix} } & (36)\end{matrix}$where

Glsp: adaptive gain by which a code vector for LS quantization ismultiplied

Slsp: reference value for selecting an adaptive gain.

The selected adaptive gain Glsp and the error which has been produced inquantization are saved in the variable Gqlsp and ERpow until thequantization target LSP of the next frame is subjected to vectorquantization.

The gain multiplier 173 multiplies a code vector, read from the LSPquantization table storage section 1307, by the adaptive gain selectedby the adaptive gain selector 172, and sends the result to the LSPquantizing section 174. The LSP quantizing section 174 performs vectorquantization on the quantization target LSP by using the code vectormultiplied by the adaptive gain, and sends its index to the parametercoding section. The LSP decoding section 175 decodes the LSP, quantizedby the LSP quantizing section 174, acquiring a decoded LSP, outputs thisdecoded LSP, subtracts the obtained decoded LSP from the quantizationtarget LSP to obtain an LSP quantization error, computes the power ERpowof the obtained LSP quantization error, and sends the power to theadaptive gain selector 172.

This mode can suppress an allophone in a synthesized speech which may beproduced when the quantization characteristic of an LSP becomesinsufficient.

(Tenth Mode)

FIG. 18 presents the structural blocks of an excitation vector generatoraccording to this mode. This excitation vector generator has a fixedwaveform storage section 181 for storing three fixed waveforms (v1(length: L1), v2 (length: L2) and v3 (length: L3)) of channels CH1, CH2and CH3, a fixed waveform arranging section 182 for arranging the fixedwaveforms (v1, v2, v3), read from the fixed waveform storage section181, respectively at positions P1, P2 and P3, and an adding section 183for adding the fixed waveforms arranged by the fixed waveform arrangingsection 182, generating an excitation vector.

The operation of the thus constituted excitation vector generator willbe discussed.

Three fixed waveforms v1, v2 and v3 are stored in advance in the fixedwaveform storage section 181. The fixed waveform arranging section 182arranges (shifts) the fixed waveform v1, read from the fixed waveformstorage section 181, at the position P1 selected from start positioncandidates for CH1, based on start position candidate information forfixed waveforms it has as shown in Table 8, and likewise arranges thefixed waveforms v2 and v3 at the respective positions P2 and P3 selectedfrom start position candidates for CH2 and CH3. TABLE 8 Channel startposition candidate information number Sign for fixed waveform CH1 ±1 P1(0, 10, 20, 30, . . . , 60, 70) CH2 ±1 $P\quad 2\quad\begin{pmatrix}{2,12,22,32,\cdots,62,72} \\{6,16,26,36,\cdots,66,76}\end{pmatrix}$ CH3 ±1 $P\quad 3\quad\begin{pmatrix}{4,14,24,34,\cdots,64,74} \\{8,18,28,38,\cdots,68,78}\end{pmatrix}$

The adding section 183 adds the fixed waveforms, arranged by the fixedwaveform arranging section 182, to generate an excitation vector.

It is to be noted that code numbers corresponding, one to one, tocombination information of selectable start position candidates of theindividual fixed waveforms (information representing which positionswere selected as P1, P2 and P3, respectively) should be assigned to thestart position candidate information of the fixed waveforms the fixedwaveform arranging section 182 has.

According to the excitation vector generator with the above structure,excitation information can be transmitted by transmitting code numberscorrelating to the start position candidate information of fixedwaveforms the fixed waveform arranging section 182 has, and the codenumbers exist by the number of products of the individual start positioncandidates, so that an excitation vector close to an actual speech canbe generated.

Since excitation information can be transmitted by transmitting codenumbers, this excitation vector generator can be used as a randomcodebook in a speech coder/decoder.

While the description of this mode has been given with reference to acase of using three fixed waveforms as shown in FIG. 18, similarfunctions and advantages can be provided if the number of fixedwaveforms (which coincides with the number of channels in FIG. 18 andTable 8) is changed to other values.

Although the fixed waveform arranging section 182 in this mode has beendescribed as having the start position candidate information of fixedwaveforms given in Table 8, similar functions and advantages can beprovided for other start position candidate information of fixedwaveforms than those in Table 8.

(Eleventh Mode)

FIG. 19A is a structural block diagram of a CELP type speech coderaccording to this mode, and FIG. 19B is a structural block diagram of aCELP type speech decoder which is paired with the CELP type speechcoder.

The CELP type speech coder according to this mode has an excitationvector generator which comprises a fixed waveform storage section 181A,a fixed waveform arranging section 182A and an adding section 183A. Thefixed waveform storage section 181A stores a plurality of fixedwaveforms. The fixed waveform arranging section 182A arranges (shifts)fixed waveforms, read from the fixed waveform storage section 181A,respectively at the selected positions, based on start positioncandidate information for fixed waveforms it has. The adding section183A adds the fixed waveforms, arranged by the fixed waveform arrangingsection 182A, to generate an excitation vector c.

This CELP type speech coder has a time reversing section 191 fortime-reversing a random codebook searching target x to be input, asynthesis filter 192 for synthesizing the output of the time reversingsection 191, a time reversing section 193 for time-reversing the outputof the synthesis filter 192 again to yield a time-reversed synthesizedtarget x′, a synthesis filter 194 for synthesizing the excitation vectorc multiplied by a random code vector gain gc, yielding a synthesizedexcitation vector s, a distortion calculator 205 for receiving x′, c ands and computing distortion, and a transmitter 196.

According to this mode, the fixed waveform storage section 181A, thefixed waveform arranging section 182A and the adding section 183Acorrespond to the fixed waveform storage section 181, the fixed waveformarranging section 182 and the adding section 183 shown in FIG. 18, thestart position candidates of fixed waveforms in the individual channelscorrespond to those in Table 8, and channel numbers, fixed waveformnumbers and symbols indicating the lengths and positions in use arethose shown in FIG. 18 and Table 8.

The CELP type speech decoder in FIG. 19B comprises a fixed waveformstorage section 181B for storing a plurality of fixed waveforms, a fixedwaveform arranging section 182B for arranging (shifting) fixedwaveforms, read from the fixed waveform storage section 181B,respectively at the selected positions, based on start positioncandidate information for fixed waveforms it has, an adding section 183Bfor adding the fixed waveforms, arranged by the fixed waveform arrangingsection 182B, to yield an excitation vector c, a gain multiplier 197 formultiplying a random code vector gain gc, and a synthesis filter 198 forsynthesizing the excitation vector c to yield a synthesized excitationvector s.

The fixed waveform storage section 181B and the fixed waveform arrangingsection 182B in the speech decoder have the same structures as the fixedwaveform storage section 181A and the fixed waveform arranging section182A in the speech coder, and the fixed waveforms stored in the fixedwaveform storage sections 181A and 181B have such characteristics as tostatistically minimize the cost function in the equation 3, which is thecoding distortion computation of the equation 3 using a tandom codebooksearching target by cost-function based learning.

The operation of the thus constituted speech coder will be discussed.

The random codebook searching target x is time-reversed by the timereversing section 191, then synthesized by the synthesis filter 192 andthen time-reversed again by the time reversing section 193, and theresult is sent as a time-reversed synthesized target x′ to thedistortion calculator 205.

The fixed waveform arranging section 182A arranges (shifts) the fixedwaveform v1, read from the fixed waveform storage section 181A, at theposition P1 selected from start position candidates for CH1, based onstart position candidate information for fixed waveforms it has as shownin Table 8, and likewise arranges the fixed waveforms v2 and v3 at therespective positions P2 and P3 selected from start position candidatesfor CH2 and CH3. The arranged fixed waveforms are sent to the addingsection 183A and added to become an excitation vector c, which is inputto the synthesis filter 194. The synthesis filter 194 synthesizes theexcitation vector c to produce a synthesized excitation vector s andsends it to the distortion calculator 205.

The distortion calculator 205 receives the time-reversed synthesizedtarget x′, the excitation vector c and the synthesized excitation vectors and computes coding distortion in the equation 4.

The distortion calculator 205 sends a signal to the fixed waveformarranging section 182A after computing the distortion. The process fromthe selection of start position candidates corresponding to the threechannels by the fixed waveform arranging section 182A to the distortioncomputation by the distortion calculator 205 is repeated for everycombination of the start position candidates selectable by the fixedwaveform arranging section 182A.

Thereafter, the combination of the start position candidates thatminimizes the coding distortion is selected, and the code number whichcorresponds, one to one, to that combination of the start positioncandidates and the then optimal random code vector gain gc aretransmitted as codes of the random codebook to the transmitter 196.

The fixed waveform arranging section 182B selects the positions of thefixed waveforms in the individual channels from start position candidateinformation for fixed waveforms it has, based on information sent fromthe transmitter 196, arranges (shifts) the fixed waveform v1, read fromthe fixed waveform storage section 181B, at the position P1 selectedfrom start position candidates for CH1, and likewise arranges the fixedwaveforms v2 and v3 at the respective positions P2 and P3 selected fromstart position candidates for CH2 and CH3. The arranged fixed waveformsare sent to the adding section 183B and added to become an excitationvector c. This excitation vector c is multiplied by the random codevector gain gc selected based on the information from the transmitter196, and the result is sent to the synthesis filter 198. The synthesisfilter 198 synthesizes the gc-multiplied excitation vector c to yield asynthesized excitation vector s and sends it out.

According to the speech coder/decoder with the above structures, as anexcitation vector is generated by the excitation vector generator whichcomprises the fixed waveform storage section, fixed waveform arrangingsection and the adding section, a synthesized excitation vector obtainedby synthesizing this excitation vector in the synthesis filter has sucha characteristic statistically close to that of an actual target as tobe able to yield a high-quality synthesized speech, in addition to theadvantages of the tenth mode.

Although the foregoing description of this mode has been given withreference to a case where fixed waveforms obtained by learning arestored in the fixed waveform storage sections 181A and 181B,high-quality synthesized speeches can also obtained even when fixedwaveforms prepared based on the result of statistical analysis of therandom codebook searching target x are used or when knowledge-basedfixed waveforms are used.

While the description of this mode has been given with reference to acase of using three fixed waveforms, similar functions and advantagescan be provided if the number of fixed waveforms is changed to othervalues.

Although the fixed waveform arranging section in this mode has beendescribed as having the start position candidate information of fixedwaveforms given in Table 8, similar functions and advantages can beprovided for other start position candidate information of fixedwaveforms than those in Table 8.

(Twelfth Mode)

FIG. 20 presents a structural block diagram of a CELP type speech coderaccording to this mode.

This CELP type speech coder includes a fixed waveform storage section200 for storing a plurality of fixed waveforms (three in this mode:CH1:W1, CH2:W2 and CH3:W3), and a fixed waveform arranging section 201which has start position candidate information of fixed waveforms forgenerating start positions of the fixed waveforms, stored in the fixedwaveform storage section 200, according to algebraic rules. This CELPtype speech coder further has a fixed waveform an impulse responsecalculator 202 for each waveform, an impulse generator 203, acorrelation matrix calculator 204, a time reversing section 191, asynthesis filter 192′ for each waveform, a time reversing section 193and a distortion calculator 205.

The impulse response calculator 202 has a function of convoluting threefixed waveforms from the fixed waveform storage section 200 and theimpulse response h (length L subframe length) of the synthesis filter tocompute three kinds of impulse responses for the individual fixedwaveforms (CH1:h1, CH2:h2 and CH3:h3, length L=subframe length).

The synthesis filter 192′ has a function of convoluting the output ofthe time reversing section 191, which is the result of thetime-reversing the random codebook searching target x to be input, andthe impulse responses for the individual waveforms, h1, h2 and h3, fromthe impulse response calculator 202.

The impulse generator 203 sets a pulse of an amplitude 1 (a polaritypresent) only at the start position candidates P1, P2 and P3, selectedby the fixed waveform arranging section 201, generating impulses for theindividual channels (CH1:d1, CH2:d2 and CH3:d3).

The correlation matrix calculator 204 computes autocorrelation of eachof the impulse responses h1, h2 and h3 for the individual waveforms fromthe impulse response calculator 202, and correlations between h1 and h2,h1 and h3, and h2 and h3, and develops the obtained correlation valuesin a correlation matrix RR.

The distortion calculator 205 specifies the random code vector thatminimizes the coding distortion, from an equation 37, a modification ofthe equation 4, by using three time-reversed synthesis targets (x′1, x′2and x′3), the correlation matrix RR and the three impulses (d1, d2 andd3) for the individual channels. $\begin{matrix}\frac{( {\sum\limits_{i = 1}^{3}{x_{i}^{\prime\quad t}d_{i}}} )^{2}}{\sum\limits_{i = 1}^{3}{\sum\limits_{j = 1}^{3}{d_{i}^{\prime\quad t}H_{i}^{t}H_{j}d_{j}}}} & (37)\end{matrix}$where

di: impulse (vector) for each channel

di=±1×δ(k−p_(i)),k=0 to L−1,p_(i): n start position candidates of thei-th channel

H impulse response convolution matrix for each waveform (H_(i)=HW_(i))

W_(i): fixed waveform convolution matrix $W_{i} = \begin{bmatrix}{w_{i}(0)} & 0 & \cdots & \cdots & 0 & 0 & 0 & 0 \\{w_{i}(1)} & {w_{i}(0)} & 0 & \cdots & 0 & 0 & 0 & 0 \\{w_{i}(2)} & {w_{i}(1)} & {w_{i}(0)} & 0 & 0 & 0 & 0 & 0 \\\vdots & \vdots & \vdots & ⋰ & 0 & 0 & 0 & 0 \\{w_{i}( {L_{i} - 1} )} & {w_{i}( {L_{i} - 2} )} & ⋰ & ⋰ & ⋰ & 0 & 0 & 0 \\0 & {w_{i}( {L_{i} - 1} )} & {w_{i}( {L_{i} - 2} )} & ⋰ & ⋰ & 0 & \cdots & 0 \\\vdots & 0 & {w_{i}( {L_{i} - 1} )} & ⋰ & ⋰ & 0 & 0 & 0 \\\vdots & \vdots & 0 & ⋰ & ⋰ & ⋰ & 0 & 0 \\\vdots & \vdots & \vdots & ⋰ & ⋰ & ⋰ & ⋰ & 0 \\0 & 0 & 0 & 0 & {w_{i}( {L_{i} - 1} )} & \cdots & {w_{i}(1)} & {w_{i}(0)}\end{bmatrix}$

-   -   where w_(i) is the fixed waveform (length: L_(i)) of the i-th        channel

x′_(i): vector obtained by time reverse synthesis of x usingH_(i)(x′_(i) ^(t)=x^(t)H_(i)).

Here, transformation from the equation 4 to the equation 37 is shown foreach of the denominator term (equation 38) and the numerator term(equation 39). $\begin{matrix}\begin{matrix}{( {x^{t}{Hc}} )^{2} = ( {x^{t}{H( {{W_{1}d_{1}} + {W_{2}d_{2}} + {W_{3}d_{3}}} )}} )^{2}} \\{= ( {x^{t}( {{H_{1}d_{1}} + {H_{2}d_{2}} + {H_{3}d_{3}}} )} )^{2}} \\{= ( {{( {x^{t}H_{1}} )d_{1}} + {( {x^{t}H_{2}} )d_{2}} + {( {x^{t}H_{3}} )d_{3}}} )^{2}} \\{= ( {{x_{1}^{\prime\quad t}d_{1}} + {x_{2}^{\prime\quad t}d_{2}} + {x_{3}^{\prime\quad t}d_{3}}} )^{2}} \\{= ( {\sum\limits_{i = 1}^{3}\quad{x_{i}^{\prime\quad t}d_{i}}} )^{2}}\end{matrix} & (38)\end{matrix}$where

x: random codebook searching target (vector)

x^(t): transposed vector of x

H: impulse response convolution matrix of the synthesis filter

c: random code vector (c=W₁d₁+W₂d₃+W₃d₃)

W_(i): fixed waveform convolution matrix

di: impulse (vector) for each channel

H_(i): impulse response convolution matrix for each waveform(H_(i)=HW_(i))

x′_(i): vector obtained by time reverse synthesis of x usingH_(i)(x′_(i) ^(t)=x^(t)H_(i)). $\begin{matrix}\begin{matrix}{{{Hc}}^{2} = {{H( {{W_{1}d_{1}} + {W_{2}d_{2}} + {W_{3}d_{3}}} )}}^{2}} \\{= {{{H_{1}d_{1}} + {H_{2}d_{2}} + {H_{3}d_{3}}}}^{2}} \\{= {( {{H_{1}d_{1}} + {H_{2}d_{2}} + {H_{3}d_{3}}} )^{t}( {{H_{1}d_{1}} + {H_{2}d_{2}} + {H_{3}d_{3}}} )}} \\{= {( {{d_{1}^{t}H_{1}^{t}} + {d_{2}^{t}H_{2}^{t}} + {d_{3}^{t}H_{3}^{t}}} )( {{H_{1}d_{1}} + {H_{2}d_{2}} + {H_{3}d_{3}}} )}} \\{= {\sum\limits_{i = 1}^{3}\quad{\sum\limits_{j = 1}^{3}\quad{d_{i}^{t}H_{i}^{t}d_{j}H_{j}}}}}\end{matrix} & (39)\end{matrix}$where

H: impulse response convolution matrix of the synthesis filter

c: random code vector (c=W1d1+W2d2+W3d3)

W_(i): fixed waveform convolution matrix

di: impulse (vector) for each channel

H_(i): impulse response convolution matrix for each waveform(H_(i)=HW_(i))

The operation of the thus constituted CELP type speech coder will bedescribed.

To begin with, the impulse response calculator 202 convolutes threefixed waveforms stored and the impulse response h to compute three kindsof impulse responses h1, h2 and h3 for the individual fixed waveforms,and sends them to the synthesis filter 192′ and the correlation matrixcalculator 204.

Next, the synthesis filter 192′ convolutes the random codebook searchingtarget x, time-reversed by the time reversing section 191, and the inputthree kinds of impulse responses h1, h2 and h3 for the individualwaveforms. The time reversing section 193 time-reverses the three kindsof output vectors from the synthesis filter 192′ again to yield threetime-reversed synthesis targets x′1, x′2 and x′3, and sends them to thedistortion calculator 205.

Then, the correlation matrix calculator 204 computes autocorrelations ofeach of the input three kinds of impulse responses h1, h2 and h3 for theindividual waveforms and correlations between h1 and h2, h1 and h3, andh2 and h3, and sends the obtained autocorrelations and correlationsvalue to the distortion calculator 205 after developing them in thecorrelation matrix RR.

The above process having been executed as a pre-process, the fixedwaveform arranging section 201 selects one start position candidate of afixed waveform for each channel, and sends the positional information tothe impulse generator 203.

The impulse generator 203 sets a pulse of an amplitude 1 (a polaritypresent) at each of the start position candidates, obtained from thefixed waveform arranging section 201, generating impulses d1, d2 and d3for the individual channels and sends them to the distortion calculator205.

Then, the distortion calculator 205 computes a reference value forminimizing the coding distortion in the equation 37, by using threetime-reversed synthesis targets x′1, x′2 and x′3 for the individualwaveforms, the correlation matrix RR and the three impulses d1, d2 andd3 for the individual channels.

The process from the selection of start position candidatescorresponding to the three channels by the fixed waveform arrangingsection 201 to the distortion computation by the distortion calculator205 is repeated for every combination of the start position candidatesselectable by the fixed waveform arranging section 201. Then, codenumber which corresponds to the combination of the start positioncandidates that minimizes the reference value for searching the codingdistortion in the equation 37 and the then optimal gain are specifiedwith the random code vector gain gc used as a code of the randomcodebook, and are transmitted to the transmitter.

The speech decoder of this mode has a similar structure to that of thetenth mode in FIG. 19B, and the fixed waveform storage section and thefixed waveform arranging section in the speech coder have the samestructures as the fixed waveform storage section and the fixed waveformarranging section in the speech decoder. The fixed waveforms stored inthe fixed waveform storage section is a fixed waveform having suchcharacteristics as to statistically minimize the cost function in theequation 3 by the training using the coding distortion equation(equation 3) with a random codebook searching target as a cost-function.

According to the thus constructed speech coder/decoder, when the startposition candidates of fixed waveforms in the fixed waveform arrangingsection can be computed algebraically, the numerator in the equation 37can be computed by adding the three terms of the time-reversed synthesistarget for each waveform, obtained in the previous processing stage, andthen obtaining the square of the result. Further, the numerator in theequation 37 can be computed by adding the nine terms in the correlationmatrix of the impulse responses of the individual waveforms obtained inthe previous processing stage. This can ensure searching with about thesame amount of computation as needed in a case where the conventionalalgebraic structural excitation vector (an excitation vector isconstituted by several pulses of an amplitude 1) is used for the randomcodebook.

Furthermore, a synthesized excitation vector in the synthesis filter hassuch a characteristic statistically close to that of an actual target asto be able to yield a high-quality synthesized speech.

Although the foregoing description of this mode has been given withreference to a case where fixed waveforms obtained through training arestored in the fixed waveform storage section, high-quality synthesizedspeeches can also obtained even when fixed waveforms prepared based onthe result of statistical analysis of the random codebook searchingtarget x are used or when knowledge-based fixed waveforms are used.

While the description of this mode has been given with reference to acase of using three fixed waveforms, similar functions and advantagescan be provided if the number of fixed waveforms is changed to othervalues.

Although the fixed waveform arranging section in this mode has beendescribed as having the start position candidate information of fixedwaveforms given in Table 8, similar functions and advantages can beprovided for other start position candidate information of fixedwaveforms than those in Table 8.

(Thirteenth Mode)

FIG. 21 presents a structural block diagram of a CELP type speech coderaccording to this mode. The speech coder according to this mode has twokinds of random codebooks A 211 and B 212, a switch 213 for switchingthe two kinds of random codebooks from one to the other, a multiplier214 for multiplying a random code vector by a gain, a synthesis filter215 for synthesizing a random code vector output from the randomcodebook that is connected by means of the switch 213, and a distortioncalculator 216 for computing coding distortion in the equation 2.

The random codebook A 211 has the structure of the excitation vectorgenerator of the tenth mode, while the other random codebook B 212 isconstituted by a random sequence storage section 217 storing a pluralityof random code vectors generated from a random sequence. Switchingbetween the random codebooks is carried out in a closed loop. The x is arandom codebook searching target.

The operation of the thus constituted CELP type speech coder will bediscussed.

First, the switch 213 is connected to the random codebook A 211, and thefixed waveform arranging section 182 arranges (shifts) the fixedwaveforms, read from the fixed waveform storage section 181, at thepositions selected from start position candidates of fixed waveformsrespectively, based on start position candidate information for fixedwaveforms it has as shown in Table 8. The arranged fixed waveforms areadded together in the adding section 183 to become a random code vector,which is sent to the synthesis filter 215 after being multiplied by therandom code vector gain. The synthesis filter 215 synthesizes the inputrandom code vector and sends the result to the distortion calculator216.

The distortion calculator 216 performs minimization of the codingdistortion in the equation 2 by using the random codebook searchingtarget x and the synthesized code vector obtained from the synthesisfilter 215.

After computing the distortion, the distortion calculator 216 sends asignal to the fixed waveform arranging section 182. The process from theselection of start position candidates corresponding to the threechannels by the fixed waveform arranging section 182 to the distortioncomputation by the distortion calculator 216 is repeated for everycombination of the start position candidates selectable by the fixedwaveform arranging section 182.

Thereafter, the combination of the start position candidates thatminimizes the coding distortion is selected, and the code number whichcorresponds, one to one, to that combination of the start positioncandidates, the then optimal random code vector gain gc and the minimumcoding distortion value are memorized.

Then, the switch 213 is connected to the random codebook B 212, causinga random sequence read from the random sequence storage section 217 tobecome a random code vector. This random code vector, after beingmultiplied by the random code vector gain, is input to the synthesisfilter 215. The synthesis filter 215 synthesizes the input random codevector and sends the result to the distortion calculator 216.

The distortion calculator 216 computes the coding distortion in theequation 2 by using the random codebook searching target x and thesynthesized code vector obtained from the synthesis filter 215.

After computing the distortion, the distortion calculator 216 sends asignal to the random sequence storage section 217. The process from theselection of the random code vector by the random sequence storagesection 217 to the distortion computation by the distortion calculator216 is repeated for every random code vector selectable by the randomsequence storage section 217.

Thereafter, the random code vector that minimizes the coding distortionis selected, and the code number of that random code vector, the thenoptimal random code vector gain gc and the minimum coding distortionvalue are memorized.

Then, the distortion calculator 216 compares the minimum codingdistortion value obtained when the switch 213 is connected to the randomcodebook A 211 with the minimum coding distortion value obtained whenthe switch 213 is connected to the random codebook B 212, determinesswitch connection information when smaller coding distortion wasobtained, the then code number and the random code vector gain aredetermined as speech codes, and are sent to an unillustratedtransmitter.

The speech decoder according to this mode which is paired with thespeech coder of this mode has the random codebook A, the random codebookB, the switch, the random code vector gain and the synthesis filterhaving the same structures and arranged in the same way as those in FIG.21, a random codebook to be used, a random code vector and a random codevector gain are determined based on a speech code input from thetransmitter, and a synthesized excitation vector is obtained as theoutput of the synthesis filter.

According to the speech coder/decoder with the above structures, one ofthe random code vectors to be generated from the random codebook A andthe random code vectors to be generated from the random codebook B,which minimizes the coding distortion in the equation 2, can be selectedin a closed loop, making it possible to generate an excitation vectorcloser to an actual speech and a high-quality synthesized speech.

Although this mode has been illustrated as a speech coder/decoder basedon the structure in FIG. 2 of the conventional CELP type speech coder,similar functions and advantages can be provided even if this mode isadapted to a CELP type speech coder/decoder based on the structure, inFIGS. 19A and 19B or FIG. 20.

Although the random codebook A 211 in this mode has the same structureas shown in FIG. 18, similar functions and advantages can be providedeven if the fixed waveform storage section 181 takes another structure(e.g., in a case where it has four fixed waveforms).

While the description of this mode has been given with reference to acase where the fixed waveform arranging section 182 of the randomcodebook A 211 has the start position candidate information of fixedwaveforms as shown in Table 8, similar functions and advantages can beprovided even for a case where the section 182 has other start positioncandidate information of fixed waveforms.

Although this mode has been described with reference to a case where therandom codebook B 212 is constituted by the random sequence storagesection 217 for directly storing a plurality of random sequences in thememory, similar functions and advantages can be provided even for a casewhere the random codebook B 212 takes other excitation vector structures(e.g., when it is constituted by excitation vector generationinformation with an algebraic structure).

Although this mode has been described as a CELP type speechcoder/decoder having two kinds of random codebooks, similar functionsand advantages can be provided even in a case of using a CELP typespeech coder/decoder having three or more kinds of random codebooks.

(Fourteenth Mode)

FIG. 22 presents a structural block diagram of a CELP type speech coderaccording to this mode. The speech coder according to this mode has twokinds of random codebooks. One random codebook has the structure of theexcitation vector generator shown in FIG. 18, and the other one isconstituted of a pulse sequences storage section which retains aplurality of pulse sequences. The random codebooks are adaptivelyswitched from one to the other by using a quantized pitch gain alreadyacquired before random codebook search.

The random codebook A 211, which comprises the fixed waveform storagesection 181, fixed waveform arranging section 182 and adding section183, corresponds to the excitation vector generator in FIG. 18. A randomcodebook B 221 is comprised of a pulse sequences storage section 222where a plurality of pulse sequences are stored. The random codebooks A211 and B 221 are switched from one to the other by means of a switch213′. A multiplier 224 outputs an adaptive code vector which is theoutput of an adaptive codebook 223 multiplied by the pitch gain that hasalready been acquired at the time of random codebook search. The outputof a pitch gain quantizer 225 is given to the switch 213′.

The operation of the thus constituted CELP type speech coder will bedescribed.

According to the conventional CELP type speech coder, the adaptivecodebook 223 is searched first, and the random codebook search iscarried out based on the result. This adaptive codebook search is aprocess of selecting an optimal adaptive code vector from a plurality ofadaptive code vectors stored in the adaptive codebook 223 (vectors eachobtained by multiplying an adaptive code vector and a random code vectorby their respective gains and then adding them together). As a result ofthe process, the code number and pitch gain of an adaptive code vectorare generated.

According to the CELP type speech coder of this mode, the pitch gainquantizer 225 quantizes this pitch gain, generating a quantized pitchgain, after which random codebook search will be performed. Thequantized pitch gain obtained by the pitch gain quantizer 225 is sent tothe switch 213′ for switching between the random codebooks.

The switch 213′ connects to the random codebook A 211 when the value ofthe quantized pitch gain is small, by which it is considered that theinput speech is unvoiced, and connects to the random codebook B 221 whenthe value of the quantized pitch gain is large, by which it isconsidered that the input speech is voiced.

When the switch 213′ is connected to the random codebook A 211, thefixed waveform arranging section 182 arranges (shifts) the fixedwaveforms, read from the fixed waveform storage section 181, at thepositions selected from start position candidates of fixed waveformsrespectively, based on start position candidate information for fixedwaveforms it has as shown in Table 8. The arranged fixed waveforms aresent to the adding section 183 and added together to become a randomcode vector. The random code vector is sent to the synthesis filter 215after being multiplied by the random code vector gain. The synthesisfilter 215 synthesizes the input random code vector and sends the resultto the distortion calculator 216.

The distortion calculator 216 computes coding distortion in the equation2 by using the target x for random codebook search and the synthesizedcode vector obtained from the synthesis filter 215.

After computing the distortion, the distortion calculator 216 sends asignal to the fixed waveform arranging section 182. The process from theselection of start position candidates corresponding to the threechannels by the fixed waveform arranging section 182 to the distortioncomputation by the distortion calculator 216 is repeated for everycombination of the start position candidates selectable by the fixedwaveform arranging section 182.

Thereafter, the combination of the start position candidates thatminimizes the coding distortion is selected, and the code number whichcorresponds, one to one, to that combination of the start positioncandidates, the then optimal random code vector gain gc and thequantized pitch gain are transferred to a transmitter as a speech code.In this mode, the property of unvoiced sound should be reflected onfixed waveform patterns to be stored in the fixed waveform storagesection 181, before speech coding takes places.

When the switch 213′ is connected to the random codebook B 212, a pulsesequence read from the pulse sequences storage section 222 becomes arandom code vector. This random code vector is input to the synthesisfilter 215 through the switch 213′ and multiplication of the random codevector gain. The synthesis filter 215 synthesizes the input random codevector and sends the result to the distortion calculator 216.

The distortion calculator 216 computes the coding distortion in theequation 2 by using the target x for random codebook search X and thesynthesized code vector obtained from the synthesis filter 215.

After computing the distortion, the distortion calculator 216 sends asignal to the pulse sequences storage section 222. The process from theselection of the random code vector by the pulse sequences storagesection 222 to the distortion computation by the distortion calculator216 is repeated for every random code vector selectable by the pulsesequences storage section 222.

Thereafter, the random code vector that minimizes the coding distortionis selected, and the code number of that random code vector, the thenoptimal random code vector gain gc and the quantized pitch gain aretransferred to the transmitter as a speech code.

The speech decoder according to this mode which is paired with thespeech coder of this mode has the random codebook A, the random codebookB, the switch, the random code vector gain and the synthesis filterhaving the same structures and arranged in the same way as those in FIG.22. First, upon reception of the transmitted quantized pitch gain, thecoder side determines from its level whether the switch 213′ has beenconnected to the random codebook A 211 or to the random codebook B 221.Next, based on the code number and the sign of the random code vector, asynthesized excitation vector is obtained as the output of the synthesisfilter.

According to the speech coder/decoder with the above structures, twokinds of random codebooks can be switched adaptively in accordance withthe characteristic of an input speech (the level of the quantized pitchgain is used to determine the transmitted quantized pitch gain in thismode), so that when the input speech is voiced, a pulse sequence can beselected as a random code vector whereas for a strong voicelessproperty, a random code vector which reflects the property of voicelesssounds can be selected. This can ensure generation of excitation vectorscloser to the actual sound property and improvement of synthesizedsounds. Because switching is performed in a closed loop in this mode asmentioned above, the functional effects can be improved by increasingthe amount of information to be transmitted.

Although this mode has been illustrated as a speech coder/decoder basedon the structure in FIG. 2 of the conventional CELP type speech coder,similar functions and advantages can be provided even if this mode isadapted to a CELP type speech coder/decoder based on the structure inFIGS. 19A and 19B or FIG. 20.

In this mode, a quantized pitch gain acquired by quantizing the pitchgain of an adaptive code vector in the pitch gain quantizer 225 is usedas a parameter for switching the switch 213′. A pitch period calculatormay be provided so that a pitch period computed from an adaptive codevector can be used instead.

Although the random codebook A 211 in this mode has the same structureas shown in FIG. 18, similar functions and advantages can be providedeven if the fixed waveform storage section 181 takes another structure(e.g., in a case where it has four fixed waveforms).

While the description of this mode has been given with reference to thecase where the fixed waveform arranging section 182 of the randomcodebook A 211 has the start position candidate information of fixedwaveforms as shown in Table 8, similar functions and advantages can beprovided even for a case where the section 182 has other start positioncandidate information of fixed waveforms.

Although this mode has been described with reference to the case wherethe random codebook B 212 is constituted by the pulse sequences storagesection 222 for directly storing a pulse sequence in the memory, similarfunctions and advantages can be provided even for a case where therandom codebook B 212 takes other excitation vector structures (e.g.,when it is constituted by excitation vector generation information withan algebraic structure).

Although this mode has been described as a CELP type speechcoder/decoder having two kinds of random codebooks, similar functionsand advantages can be provided even in a case of using a CELP typespeech coder/decoder having three or more kinds of random codebooks.

(Fifteenth Mode)

FIG. 23 presents a structural block diagram of a CELP type speech coderaccording to this mode. The speech coder according to this mode has twokinds of random codebooks. One random codebook takes the structure ofthe excitation vector generator shown in FIG. 18 and has three fixedwaveforms stored in the fixed waveform storage section, and the otherone likewise takes the structure of the excitation vector generatorshown in FIG. 18 but has two fixed waveforms stored in the fixedwaveform storage section. Those two kinds of random codebooks areswitched in a closed loop.

The random codebook A 211, which comprises a fixed waveform storagesection A 181 having three fixed waveforms stored therein, fixedwaveform arranging section A 182 and adding section 183, corresponds tothe structure of the excitation vector generator in FIG. 18 whichhowever has three fixed waveforms stored in the fixed waveform storagesection.

A random codebook B 230 comprises a fixed waveform storage section B 231having two fixed waveforms stored therein, fixed waveform arrangingsection B 232 having start position candidate information of fixedwaveforms as shown in Table 9 and adding section 233, which adds twofixed waveforms, arranged by the fixed waveform arranging section B 232,thereby generating a random code vector. The random codebook B 230corresponds to the structure of the excitation vector generator in FIG.18 which however has two fixed waveforms stored in the fixed waveformstorage section. TABLE 9 Channel Channel number Sign Start positionnumber Sign candidates fixed waveforms CH1 ±1${P1}\quad( \begin{matrix}{0,4,\quad 8,12,16,\cdots,72,76} \\{2,6,10,14,18,\cdots,74,78}\end{matrix} $ CH2 ±1 ${P2}\quad( \begin{matrix}{1,5,\quad 9,13,17,\cdots,73,77} \\{3,7,11,15,19,\cdots,75,79}\end{matrix} $

The other structure is the same as that of the above-describedthirteenth mode.

The operation of the CELP type speech coder constructed in the above waywill be described.

First, the switch 213 is connected to the random codebook A 211, and thefixed waveform arranging section A 182 arranges (shifts) three fixedwaveforms, read from the fixed waveform storage section A 181, at thepositions selected from start position candidates of fixed waveformsrespectively, based on start position candidate information for fixedwaveforms it has as shown in Table 8. The arranged three fixed waveformsare output to the adding section 183 and added together to become arandom code vector. This random code vector is sent to the synthesisfilter 215 through the switch 213 and the multiplier 214 for multiplyingit by the random code vector gain. The synthesis filter 215 synthesizesthe input random code vector and sends the result to the distortioncalculator 216.

The distortion calculator 216 computes coding distortion in the equation2 by using the random codebook search target X and the synthesized codevector obtained from the synthesis filter 215.

After computing the distortion, the distortion calculator 216 sends asignal to the fixed waveform arranging section A 182. The process fromthe selection of start position candidates corresponding to the threechannels by the fixed waveform arranging section A 182 to the distortioncomputation by the distortion calculator 216 is repeated for everycombination of the start position candidates selectable by the fixedwaveform arranging section A 182.

Thereafter, the combination of the start position candidates thatminimizes the coding distortion is selected, and the code number whichcorresponds, one to one, to that combination of the start positioncandidates, the then optimal random code vector gain gc and the minimumcoding distortion value are memorized.

In this mode, the fixed waveform patterns to be stored in the fixedwaveform storage section A 181 before speech coding are what have beenacquired through training in such a way as to minimize distortion underthe condition of three fixed waveforms in use.

Next, the switch 213 is connected to the random codebook B 230, and thefixed waveform arranging section B 232 arranges (shifts) two fixedwaveforms, read from the fixed waveform storage section B 231, at thepositions selected from start position candidates of fixed waveformsrespectively, based on start position candidate information for fixedwaveforms it has as shown in Table 9. The arranged two fixed waveformsare output to the adding section 233 and added together to become arandom code vector. This random code vector is sent to the synthesisfilter 215 through the switch 213 and the multiplier 214 for multiplyingit by the random code vector gain. The synthesis filter 215 synthesizesthe input random code vector and sends the result to the distortioncalculator 216.

The distortion calculator 216 computes coding distortion in the equation2 by using the target x for random codebook search X and the synthesizedcode vector obtained from the synthesis filter 215.

After computing the distortion, the distortion calculator 216 sends asignal to the fixed waveform arranging section B 232. The process fromthe selection of start position candidates corresponding to the threechannels by the fixed waveform arranging section B 232 to the distortioncomputation by the distortion calculator 216 is repeated for everycombination of the start position candidates selectable by the fixedwaveform arranging section B 232.

Thereafter, the combination of the start position candidates thatminimizes the coding distortion is selected, and the code number whichcorresponds, one to one, to that combination of the start positioncandidates, the then optimal random code vector gain gc and the minimumcoding distortion value are memorized. In this mode, the fixed waveformpatterns to be stored in the fixed waveform storage section B 231 beforespeech coding are what have been acquired through training in such, away as to minimize distortion under the condition of two fixed waveformsin use.

Then, the distortion calculator 216 compares the minimum codingdistortion value obtained when the switch 213 is connected to the randomcodebook B 230 with the minimum coding distortion value obtained whenthe switch 213 is connected to the random codebook B 212, determinesswitch connection information when smaller coding distortion wasobtained, the then code number and the random code vector gain aredetermined as speech codes, and are sent to the transmitter.

The speech decoder according to this mode has the random codebook A, therandom codebook B, the switch, the random code vector gain and thesynthesis filter having the same structures and arranged in the same wayas those in FIG. 23, a random codebook to be used, a random code vectorand a random code vector gain are determined based on a speech codeinput from the transmitter, and a synthesized excitation vector isobtained as the output of the synthesis filter.

According to the speech coder/decoder with the above structures, one ofthe random code vectors to be generated from the random codebook A andthe random code vectors to be generated from the random codebook B,which minimizes the coding distortion in the equation 2, can be selectedin a closed loop, making it possible to generate an excitation vectorcloser to an actual speech and a high-quality synthesized speech.

Although this mode has been illustrated as a speech coder/decoder basedon the structure in FIG. 2 of the conventional CELP type speech coder,similar functions and advantages can be provided even if this mode isadapted to a CELP type speech coder/decoder based on the structure inFIGS. 19A and 19B or FIG. 20.

Although this mode has been described with reference to the case wherethe fixed waveform storage section A 181 of the random codebook A 211stores three fixed waveforms, similar functions and advantages can beprovided even if the fixed waveform storage section A 181 stores adifferent number of fixed waveforms (e.g., in a case where it has fourfixed waveforms). The same is true of the random codebook B 230.

While the description of this mode has been given with reference to thecase where the fixed waveform arranging section A 182 of the randomcodebook A 211 has the start position candidate information of fixedwaveforms as shown in Table 8, similar functions and advantages can beprovided even for a case where the section 182 has other start positioncandidate information of fixed waveforms. The same is applied to therandom codebook B 230.

Although this mode has been described as a CELP type speechcoder/decoder having two kinds of random codebooks, similar functionsand advantages can be provided even in a case of using a CELP typespeech coder/decoder having three or more kinds of random codebooks.

(Sixteenth Mode)

FIG. 24 presents a structural block diagram of a CELP type speech coderaccording to this mode. The speech coder acquires LPC coefficients byperforming autocorrelation analysis and LPC analysis on input speechdata 241 in an LPC analyzing section 242, encodes the obtained LPCcoefficients to acquire LPC codes, and encodes the obtained LPC codes toyield decoded LPC coefficients.

Next, an excitation vector generator 245 acquires an adaptive codevector and a random code vector from an adaptive codebook 243 and anexcitation vector generator 244, and sends them to an LPC synthesisfilter 246. One of the excitation vector generators of theabove-described first to fourth and tenth modes is used for theexcitation vector generator 244. Further, the LPC synthesis filter 246filters two excitation vectors, obtained by the excitation vectorgenerator 245, with the decoded LPC coefficients obtained by the LPCanalyzing section 242, thereby yielding two synthesized speeches.

A comparator 247 analyzes a relationship between the two synthesizedspeeches, obtained by the LPC synthesis filter 246, and the inputspeech, yielding optimal values (optimal gains) of the two synthesizedspeeches, adds the synthesized speeches whose powers have been adjustedwith the optimal gains, acquiring a total synthesized speech, and thencomputes a distance between the total synthesized speech and the inputspeech.

Distance computation is also carried out on the input speech andmultiple synthesized speeches, which are obtained by causing theexcitation vector generator 245 and the LPC synthesis filter 246 tofunction with respect to all the excitation vector samples those aregenerated by the random codebook 243 and the excitation vector generator244. Then, the index of the excitation vector sample which provides theminimum one of the distances obtained from the computation. The obtainedoptimal gains, the obtained index of the excitation vector sample andtwo excitation vectors corresponding to that index are sent to aparameter coding section 248.

The parameter coding section 248 encodes the optimal gains to obtaingain codes, and the LPC codes and the index of the excitation vectorsample are all sent to a transmitter 249. An actual excitation signal isproduced from the gain codes and the two excitation vectorscorresponding to the index, and an old excitation vector sample isdiscarded at the same time the excitation signal is stored in theadaptive codebook 243.

FIG. 25 shows functional blocks of a section in the parameter codingsection 248, which is associated with vector quantization of the gain.

The parameter coding section 248 has a parameter converting section 2502for converting input optimal gains 2501 to a sum of elements and a ratiowith respect to the sum to acquire quantization target vectors, a targetvector extracting section 2503 for obtaining a target vector by usingold decoded code vectors, stored in a decoded vector storage section,and predictive coefficients stored in a predictive coefficients storagesection, a decoded vector storage section 2504 where old decoded codevectors are stored, a predictive coefficients storage section 2505, adistance calculator 2506 for computing distances between a plurality ofcode vectors stored in a vector codebook and a target vector obtained bythe target vector extracting section by using predictive coefficientsstored in the predictive coefficients storage section, a vector codebook2507 where a plurality of code vectors are stored, and a comparator2508, which controls the vector codebook and the distance calculator forcomparison of the distances obtained from the distance calculator toacquire the number of the most appropriate code vector, acquires a codevector from the vector storage section based on the obtained number, andupdates the content of the decoded vector storage section using thatcode vector.

A detailed description will now be given of the operation of the thusconstituted parameter coding section 248. The vector codebook 2507 wherea plurality of general samples (code vectors) of a quantization targetvector are stored should be prepared in advance. This is generallyprepared by an LBG algorithm (IEEE TRANSACTIONS-ON COMMUNICATIONS, VOL.COM-28, NO. 1, PP 84-95, JANUARY 1980) based on multiple vectors whichare obtained by analyzing multiple speech data.

Coefficients for predictive coding should be stored in the predictivecoefficients storage section 2505. The predictive coefficients will nowbe discussed after describing the algorithm. A value indicating aunvoiced state should be stored as an initial value in the decodedvector storage section 2504. One example would be a code vector with thelowest power.

First, the input optimal gains 2501 (the gain of an adaptive excitationvector and the gain of a random excitation vector) are converted toelement vectors (inputs) of a sum and a ratio in the parameterconverting section 2502. The conversion method is illustrated in anequation 40.P=log(Ga+Gs)R=Ga/(Ga+Gs)  (40)where

(Ga, Gs): optical gain

Ga: gain of an adaptive excitation vector

Gs: gain of stochastic excitation vector

(P, R): input vectors

P: sum

R: ratio.

It is to be noted that Ga above should not necessarily be a positivevalue. Thus, R may take a negative value. When Ga+Gs becomes negative, afixed value prepared in advance is substituted.

Next, based on the vectors obtained by the parameter converting section2502, the target vector extracting section 2503 acquires a target vectorby using old decoded code vectors, stored in the decoded vector storagesection 2504, and predictive coefficients stored in the predictivecoefficients storage section 2504. An equation for computing the targetvector is given by an equation 41. $\begin{matrix}{{{Tp} = {P - ( {{\sum\limits_{i = 1}^{l}\quad{{Upi} \times {pi}}} + {\sum\limits_{i = 1}^{l}\quad{{Vpi} \times {ri}}}} )}}{{Tr} = {R - ( {{\sum\limits_{i = 1}^{l}\quad{{Uri} \times {pi}}} + {\sum\limits_{i = 1}^{l}\quad{{Vri} \times {ri}}}} )}}} & (41)\end{matrix}$where

(Tp, Tr): target vector

(P, R): input vector

(pi, ri): old decoded vector

Upi, Vpi, Uri, Vri: predictive coefficients (fixed values)

i: index indicating how old the decoded vector is

l: prediction order.

Then, the distance calculator 2506 computes a distance between a targetvector obtained by the target vector extracting section 2503 and a codevector stored in the vector codebook 2507 by using the predictivecoefficients stored in the predictive coefficients storage section 2505.An equation for computing the distance is given by an equation 42.Dn=Wp×(Tp−UpO×Cpn−VpO×Crn)² +Wr×(Tr−UpO×Cpn−VrO×Crn)²  (42)where

Dn: distance between a target vector and a code vector

(Tp, Tr): target vector

UpO, VpO, UrO, VrO: predictive coefficients (fixed values)

(Cpn, Crn): code vector

n: the number of the code vector

Wp, Wr: weighting coefficient (fixed) for adjusting the sensitivityagainst distortion.

Then, the comparator 2508 controls the vector codebook 2507 and thedistance calculator 2506 to acquire the number of the code vector whichhas the shortest distance computed by the distance calculator 2506 fromamong a plurality of code vectors stored in the vector codebook 2507,and sets the number as a gain code 2509. Based on the obtained gain code2509, the comparator 2508 acquires a decoded vector and updates thecontent of the decoded vector storage section 2504 using that vector. Anequation 43 shows how to acquire a decoded vector. $\begin{matrix}{{p = {( {{\sum\limits_{i = 1}^{l}\quad{{Upi} \times {pi}}} + {\sum\limits_{i = 1}^{l}\quad{{Vpi} \times {ri}}}} ) + {{UpO} \times {Cpn}} + {{VpO} \times {Crn}}}}{R = {( {{\sum\limits_{i = 1}^{l}\quad{{Uri} \times {pi}}} + {\sum\limits_{i = 1}^{l}\quad{{Vri} \times {ri}}}} ) + {{UrO} \times {Cpn}} + {{VrO} \times {Crn}}}}} & (43)\end{matrix}$where

(Cpn, Crn): code vector

(P, r): decoded vector

(pi, ri): old decoded vector

Upi, Vpi, Uri, Vri: predictive coefficients (fixed values)

i: index indicating how old the decoded vector is

l: prediction order.

n: the number of the code vector.

An equation 44 shows an updating scheme.

Processing orderpO=CpNrO=CrNpi=pi−1 (i=1˜1)ri=ri−1 (i=1˜1)  (44)

N: code of the gain.

Meanwhile, the decoder, which should previously be provided with avector codebook, a predictive coefficients storage section and a codedvector storage section similar to those of the coder, performs decodingthrough the functions of the comparator of the coder of generating adecoded vector and updating the decoded vector storage section, based onthe gain code transmitted from the coder.

A scheme of setting predictive coefficients to be stored in thepredictive coefficients storage section 2505 will now be described.

Predictive coefficients are obtained by quantizing a lot of trainingspeech data first, collecting input vectors obtained from their optimalgains and decoded vectors at the time of quantization, forming apopulation, then minimizing total distortion indicated by the followingequation 45 for that population. Specifically, the values of Upi and Uriare acquired by solving simultaneous equations which are derived bypartial differential of the equation of the total distortion withrespect to Upi and Uri. $\begin{matrix}{{Total} = {\sum\limits_{t = 0}^{T}\quad\{ {{{Wp} \times ( {{{Pt} - {\sum\limits_{i = 0}^{l}\quad{{Upi} \times {pt}}}},i} )^{2}} + {{Wr} \times ( {{{Rt} - {\sum\limits_{i = 0}^{l}\quad{{Uri} \times {rt}}}},i} )^{2}}} \}}} & (45)\end{matrix}$  pt,O=Cpn _((t))rt,O=Crn _((t))where

Total: total distortion

t: time (frame number)

T: the number of pieces of data in the population

(Pt, Rt): optimal gain at time t

(pti, rti): decoded vector at time t

Upi, Vpi, Uri, Vri: predictive coefficients (fixed values)

i: index indicating how old the decoded vector is

l: prediction order.

(Cpn_((t)), Crn_((t))): code vector at time t

n: the number of the code vector

Wp, Wr: weighting coefficient (fixed) for adjusting the sensitivityagainst distortion.

According to such a vector quantization scheme, the optimal gain can bevector-quantized as it is, the feature of the parameter convertingsection can permit the use of the correlation between the relativelevels of the power and each gain, and the features of the decodedvector storage section, the predictive coefficients storage section, thetarget vector extracting section and the distance calculator can ensurepredictive coding of gains using the correlation between the mutualrelations between the power and two gains. Those features can allow thecorrelation among parameters to be utilized sufficiently.

(Seventeenth Mode)

FIG. 26 presents a structural block diagram of a parameter codingsection of a speech coder according to this mode. According to thismode, vector quantization is performed while evaluatinggain-quantization originated distortion from two synthesized speechescorresponding to the index of an excitation vector and a perpetualweighted input speech.

As shown in FIG. 26, the parameter coding section has a parametercalculator 2602, which computes parameters necessary for distancecomputation from input data or a perpetual weighted input speech, aperpetual weighted LPC synthesis of adaptive code vector and a perpetualweighted LPC synthesis of random code vector 2601 to be input, a decodedvector stored in a decoding vector storage section, and predictivecoefficients stored in a predictive coefficients storage section, adecoded vector storage, section 2603 where old decoded code vectors arestored, a predictive coefficients storage section 2604 where predictivecoefficients are stored, a distance calculator 2605 for computing codingdistortion of the time when decoding is implemented with a plurality ofcode vectors stored in a vector codebook by using the predictivecoefficients stored in the predictive coefficients storage section, avector codebook 2606 where a plurality of code vectors are stored, and acomparator 2607, which controls the vector codebook and the distancecalculator for comparison of the coding distortions obtained from thedistance calculator to acquire the number of the most appropriate codevector, acquires a code vector from the vector storage section based onthe obtained number, and updates the content of the decoded vectorstorage section using that code vector.

A description will now be given of the vector quantizing operation ofthe thus constituted parameter coding section. The vector codebook 2606where a plurality of general samples (code vectors) of a quantizationtarget vector are stored should be prepared in advance. This isgenerally prepared by an LBG algorithm (IEEE TRANSACTIONS ONCOMMUNICATIONS, VOL. COM-28, NO. 1, PP 84-95, JANUARY 1980) or the likebased on multiple vectors which are obtained by analyzing multiplespeech data. Coefficients for predictive coding should be stored in thepredictive coefficients storage section 2604. Those coefficients in useare the same predictive coefficients as stored in the predictivecoefficients storage section 2505 which has been discussed in (SixteenthMode). A value indicating a unvoiced state should be stored as aninitial value in the decoded vector storage section 2603.

First, the parameter calculator 2602 computes parameters necessary fordistance computation from the input perpetual weighted input speech,perpetual weighted LPC synthesis of adaptive code vector and perpetualweighted LPC synthesis of random code vector, and further from thedecoded vector stored in the decoded vector storage section 2603 and thepredictive coefficients stored in the predictive coefficients storagesection 2604. The distances in the distance calculator are based on thefollowing equation 46. $\begin{matrix}{{{En} = {\sum\limits_{i = 0}^{l}\quad( {{Xi} - {{Gan} \times {Ai}} - {{Gsn} \times {Si}}} )^{2}}}{{Gan} = {{Orn} \times e \times {p({Opn})}}}{{Gsn} = {( {1 - {Orn}} ) \times e \times {p({Opn})}}}{{Opn} = {{Yp} + {{UpO} \times {Cpn}} + {{VpO} \times {Crn}}}}{{Yp} = {{\sum\limits_{j = 1}^{J}\quad{{Upj} \times {pj}}} + {\sum\limits_{j = 1}^{J}\quad{{Vpj} \times {rj}}}}}{{Yr} = {{\sum\limits_{j = 1}^{J}\quad{{Urj} \times {pj}}} + {\sum\limits_{j = 1}^{J}\quad{{Vrj} \times {rj}}}}}} & (46)\end{matrix}$Gan, Gsn: decoded gain

(Opn, Orn): decoded vector

(Yp, Yr): predictive vector

En: coding distortion when the n-th gain code vector is used

Xi: perpetual weighted input speech

Ai: perpetual weighted LPC synthesis of adaptive code vector

Si: perpetual weighted LPC synthesis of stochastic code vector

n: code of the code vector

i: index of excitation data

I: subframe length (coding unit of the input speech)

(Cpn, Crn): code vector

(pj, rj): old decoded vector

Upj, Vpj, Urj, Vrj: predictive coefficients (fixed values)

j: index indicating how old the decoded vector is

J: prediction order.

Therefore, the parameter calculator 2602 computes those portions whichdo not depend on the number of a code vector. What is to be computed arethe predictive vector, and the correlation among three synthesizedspeeches or the power. An equation for the computation is given by anequation 47. $\begin{matrix}{{{Yp} = {{\sum\limits_{j = 1}^{J}\quad{{Upj} \times {pj}}} + {\sum\limits_{j = 1}^{J}\quad{{Vpj} \times {rj}}}}}{{Yr} = {{\sum\limits_{j = 1}^{J}\quad{{Urj} \times {pj}}} + {\sum\limits_{j = 1}^{J}\quad{{Vrj} \times {rj}}}}}{{Dxx} = {\sum\limits_{i = 0}^{I}\quad{{Xi} \times {Xi}}}}{{Dxa} = {\sum\limits_{i = 0}^{I}\quad{{Xi} \times {Ai} \times 2}}}{{Dxs} = {\sum\limits_{i = 0}^{I}\quad{{Xi} \times {Si} \times 2}}}{{Daa} = {\sum\limits_{i = 0}^{I}\quad{{Ai} \times {Ai}}}}{{Das} = {\sum\limits_{i = 0}^{I}\quad{{Ai} \times {Si} \times 2}}}{{Dss} = {\sum\limits_{i = 0}^{I}\quad{{Si} \times {Si}}}}} & (47)\end{matrix}$where

(Yp, Yr): predictive vector

Dxx, Dxa, Dxs, Daa, Das, Dss: value of correction among synthesizedspeeches or the power

Xi: perpetual weighted input speech

Ai: perpetual weighted LPC synthesis of adaptive code vector

Si: perpetual weighted LPC synthesis of stochastic code vector

i: index of excitation data

I: subframe length (coding unit of the input speech)

(pj, rj): old decoded vector

Upj, Vpj, Urj, Vrj: predictive coefficients (fixed values)

j: index indicating how old the decoded vector is

J: prediction order.

Then, the distance calculator 2506 computes a distance between a targetvector obtained by the target vector extracting section 2503 and a codevector stored in the vector codebook 2507 by using the predictivecoefficients stored in the predictive coefficients storage section 2505.An equation for computing the distance is given by an equation 42.$\begin{matrix}{{{En} = {{Dxx} + {({Gan})^{2} \times {Daa}} + {({Gsn})^{2} \times {Dss}} - {{Gan} \times {Dxa}} - {{Gsn} \times {Dxs}} + {{Gan} \times {Gsn} \times {Das}}}}{{Gan} = {{Orn} \times {\exp({Opn})}}}{{Gsn} = {( {1 - {Orn}} ) \times {\exp({Opn})}}}{{Opn} = {{Yp} + {{UpO} \times {Cpn}} + {{VpO} \times {Crn}}}}{{Orn} = {{Yr} + {{UrO} \times {Cpn}} + {{VrO} \times {Crn}}}}} & (48)\end{matrix}$where

En: coding distortion when the n-th gain code vector is used

Dxx, Dxa, Dxs, Daa, Das, Dss: value of correction among synthesizedspeeches or the power

Gan, Gsn: decoded gain

(Opn, Orn): decoded vector

(Yp, Yr): predictive vector

UpO, VpO, UrO, VrO: predictive coefficients (fixed values)

(Cpn, Crn): code vector

n: the number of the code vector.

Actually, Dxx does not depend on the number n of the code vector so thatits addition can be omitted.

Then, the comparator 2607 controls the vector codebook 2606 and thedistance calculator 2605 to acquire the number of the code vector whichhas the shortest distance computed by the distance calculator 2605 fromamong a plurality of code vectors stored in the vector codebook 2606,and sets the number as a gain code 2608. Based on the obtained gain code2608, the comparator 2607 acquires a decoded vector and updates thecontent of the decoded vector storage section 2603 using that vector. Acode vector is obtained from the equation 44.

Further, the updating scheme, the equation 44, is used.

Meanwhile, the speech decoder should previously be provided with avector codebook, a predictive coefficients storage section and a codedvector storage section similar to those of the speech coder, andperforms decoding through the functions of the comparator of the coderof generating a decoded vector and updating the decoded vector storagesection, based on the gain code transmitted from the coder.

According to the thus constituted mode, vector quantization can beperformed while evaluating gain-quantization originated distortion fromtwo synthesized speeches corresponding to the index of the excitationvector and the input speech, the feature of the parameter convertingsection can permit the use of the correlation between the relativelevels of the power and each gain, and the features of the decodedvector storage section, the predictive coefficients storage section, thetarget vector extracting section and the distance calculator can ensurepredictive coding of gains using the correlation between the mutualrelations between the power and two gains. This can allow thecorrelation among parameters to be utilized sufficiently.

(Eighteenth Mode)

FIG. 27 presents a structural block diagram of the essential portions ofa noise canceller according to this mode. This noise canceller isinstalled in the above-described speech coder. For example, it is placedat the preceding stage of the buffer 1301 in the speech coder shown inFIG. 13.

The noise canceller shown in FIG. 27 comprises an A/D converter 272, anoise cancellation coefficient storage section 273, a noise cancellationcoefficient adjusting section 274, an input waveform setting section275, an LPC analyzing section 276, a Fourier transform section 277, anoise canceling/spectrum compensating section 278, a spectrumstabilizing section 279, an inverse Fourier transform section 280, aspectrum enhancing section 281, a waveform matching section 282, a noiseestimating section 284, a noise spectrum storage section 285, a previousspectrum storage section 286, a random phase storage section 287, aprevious waveform storage section 288, and a maximum power storagesection 289.

To begin with, initial settings will be discussed. Table 10 shows thenames of fixed parameters and setting examples. TABLE 10 FixedParameters Setting Examples frame length 160 (20 msec for 8-kHz samplingdata) pre-read data length 80 (10 msec for the above data) FET order 256LPC prediction order 10 sustaining number of noise spectrum reference 30designated minimum power 20.0 AR enhancement coefficient 0 0.5 MAenhancement coefficient 0 0.8 high-frequency enhancement coefficient 00.4 AR enhancement coefficient 1-0 0.66 MA enhancement coefficient 1-00.64 AR enhancement coefficient 1-1 0.7 MA enhancement coefficient 1-10.6 high-frequency enhancement coefficient 1 0.3 power enhancementcoefficient 1.2 noise reference power 20000.0 unvoiced segment powerreduction coefficient 0.3 compensation power increase coefficient 2.0number of consecutive noise references 5 noise cancellation coefficienttraining coefficient 0.8 unvoiced segment detection coefficient 0.05designated noise cancellation coefficient 1.5

Phase data for adjusting the phase should have been stored in the randomphase storage section 287. Those are used to rotate the phase in thespectrum stabilizing section 279. Table 11 shows a case where there areeight kinds of phase data. TABLE 11 Phase Data (−0.51, 0.86), (0.98,−0.17) (0.30, 0.95), (−0.53, −0.84) (−0.94, −0.34), (0.70, 0.71) (−0.22,0.97), (0.38, −0.92)

Further, a counter (random phase counter) for using the phase-datashould have been stored in the random phase storage section 287 too.This value should have been initialized to 0 before storage.

Next, the static RAM area is set. Specifically, the noise cancellationcoefficient storage section 273, the noise spectrum storage section 285,the previous spectrum storage section 286, the previous waveform storagesection 288 and the maximum power storage section 289 are cleared. Thefollowing will discuss the individual storage sections and a settingexample.

The noise cancellation coefficient storage section 273 is an area forstoring a noise cancellation coefficient whose initial value stored is20.0. The noise spectrum storage section 285 is an area for storing, foreach frequency, mean noise power, a mean noise spectrum, a compensationnoise spectrum for the first candidate, a compensation noise spectrumfor the second candidate, and a frame number (sustaining number)indicating how many frames earlier the spectrum value of each frequencyhas changed; a sufficiently large value for the mean noise power,designated minimum power for the mean noise spectrum, and sufficientlylarge values for the compensation noise spectra and the sustainingnumber should be stored as initial values.

The previous spectrum storage section 286 is an area for storingcompensation noise power, power (full range, intermediate range) of aprevious frame (previous frame power), smoothing power (full range,intermediate range) of a previous frame (previous smoothing power), anda noise sequence number; a sufficiently large value for the compensationnoise power, 0.0 for both the previous frame power and full framesmoothing power and a noise reference sequence number as the noisesequence number should be stored.

The previous waveform storage section 288 is an area for storing data ofthe output signal of the previous frame by the length of the lastpre-read data for matching of the output signal, and all 0 should bestored as an initial value. The spectrum enhancing section 281, whichexecutes ARMA and high-frequency enhancement filtering, should have thestatuses of the respective filters cleared to 0 for that purpose. Themaximum power storage section 289 is an area for storing the maximumpower of the input signal, and should have 0 stored as the maximumpower.

Then, the noise cancellation algorithm will be explained block by blockwith reference to FIG. 27.

First, an analog input signal 271 including a speech is subjected to A/Dconversion in the A/D-converter 272, and is input by one framelength+pre-read data length (160+80=240 points in the above settingexample). The noise cancellation coefficient adjusting section 274computes a noise cancellation coefficient and a compensation coefficientfrom an equation 49 based on the noise cancellation coefficient storedin the noise cancellation coefficient storage section 273, a designatednoise cancellation coefficient, a learning coefficient for the noisecancellation coefficient, and a compensation power increase coefficient.The obtained noise cancellation coefficient is stored in the noisecancellation coefficient storage section 273, the input signal obtainedby the A/D converter 272 is sent to the input waveform setting section275, and the compensation coefficient and noise cancellation coefficientare sent to the noise estimating section 284 and the noisecanceling/spectrum compensating section 278.q=q×C+Q×(1−C)r=Q/q×D  (49)where

q: noise cancellation coefficient

Q: designated noise cancellation coefficient

C: learning coefficient for the noise cancellation coefficient

r: compensation coefficient

D: compensation power increase coefficient.

The noise cancellation coefficient is a coefficient indicating a rate ofdecreasing noise, the designated noise cancellation coefficient is afixed coefficient previously designated, the learning coefficient forthe noise cancellation coefficient is a coefficient indicating a rate bywhich the noise cancellation coefficient approaches the designated noisecancellation coefficient, the compensation coefficient is a coefficientfor adjusting the compensation power in the spectrum compensation, andthe compensation power increase coefficient is a coefficient foradjusting the compensation coefficient.

In the input waveform setting section 275, the input signal from the A/Dconverter 272 is written in a memory arrangement having a length of 2 toan exponential power from the end in such a way that FFT (Fast FourierTransform) can be carried out. 0 should be filled in the front portion.In the above setting example, 0 is written in 0 to 15 in the arrangementwith a length of 256, and the input signal is written in 16 to 255. Thisarrangement is used as a real number portion in FFT of the eighth order.An arrangement having the same length as the real number portion isprepared for an imaginary number portion, and all 0 should be writtenthere.

In the LPC analyzing section 276, a hamming window is put on the realnumber area set in the input waveform setting section 275,autocorrelation analysis is performed on the Hamming-windowed waveformto acquire an autocorrelation value, and autocorrelation-based LPCanalysis is performed to acquire linear predictive coefficients.Further, the obtained linear predictive coefficients are sent to thespectrum enhancing section 281.

The Fourier transform section 277 conducts discrete Fourier transform byFFT using the memory arrangement of the real number portion and theimaginary number portion, obtained by the input waveform setting section275. The sum of the absolute values of the real number portion and theimaginary number portion of the obtained complex spectrum is computed toacquire the pseudo amplitude spectrum (input spectrum hereinafter) ofthe input signal. Further, the total sum of the input spectrum value ofeach frequency (input power hereinafter) is obtained and sent to thenoise estimating section 284. The complex spectrum itself is sent to thespectrum stabilizing section 279.

A process in the noise estimating section 284 will now be discussed.

The noise estimating section 284 compares the input power obtained bythe Fourier transform section 277 with the maximum power value stored inthe maximum power storage section 289, and stores the maximum powervalue as the input power value in the maximum power storage section 289when the maximum power is smaller. If at least one of the followingcases is satisfied, noise estimation is performed, and if none of themare met, noise estimation is not carried out.

(1) The input power is smaller than the maximum power multiplied by anunvoiced segment detection coefficient.

(2) The noise cancellation coefficient is larger than the designatednoise cancellation coefficient plus 0.2.

(3) The input power is smaller than a value obtained by multiplying themean noise power, obtained from the noise spectrum storage section 285,by 1.6.

The noise estimating algorithm in the noise estimating section 284 willnow be discussed.

First, the sustaining numbers of all the frequencies for the first andsecond candidates stored in the noise spectrum storage section 285 areupdated (incremented by 1). Then, the sustaining number of eachfrequency for the first candidate is checked, and when it is larger thana previously set sustaining number of noise spectrum reference, thecompensation spectrum and sustaining number for the second candidate areset as those for the first candidate, and the compensation spectrum ofthe second candidate is set as that of the third candidate and thesustaining number is set to 0. Note that in replacement of thecompensation spectrum of the second candidate, the memory can be savedby not storing the third candidate and substituting a value slightlylarger than the second candidate. In this mode, a spectrum which is 1.4times greater than the compensation spectrum of the second candidate issubstituted.

After renewing the sustaining number, the compensation noise spectrum iscompared with the input spectrum for each frequency. First, the inputspectrum of each frequency is compared with the compensation nosespectrum of the first candidate, and when the input spectrum is smaller,the compensation noise spectrum and sustaining number for the firstcandidate are set as those for the second candidate, and the inputspectrum is set as the compensation spectrum of the first candidate withthe sustaining number set to 0. In other cases than the mentionedcondition, the input spectrum is compared with the compensation nosespectrum of the second candidate, and when the input spectrum issmaller, the input spectrum is set as the compensation spectrum of thesecond candidate with the sustaining number set to 0. Then, the obtainedcompensation spectra and sustaining numbers of the first and secondcandidates are stored in the noise spectrum storage section 285. At thesame time, the mean noise spectrum is updated according to the followingequation 50.Si=Si×g+Si×(1−g)  (50)where

s: means noise spectrum

S: input spectrum

g: 0.9 (when the input power is larger than a half the mean noise power)

0.5 (when the input power is equal to or smaller than a half the meannoise power)

i: number of the frequency.

The mean noise spectrum is pseudo mean noise spectrum, and thecoefficient g in the equation 50 is for adjusting the speed of learningthe mean noise spectrum. That is, the coefficient has such an effectthat when the input power is smaller than the noise power, it is likelyto be a noise-only segment so that the learning speed will be increased,and otherwise, it is likely to be in a speech segment so that thelearning speed will be reduced.

Then, the total of the values of the individual frequencies of the meannoise spectrum is obtained to be the mean noise power. The compensationnoise spectrum, mean noise spectrum and mean noise power are stored inthe noise spectrum storage section 285.

In the above noise estimating process, the capacity of the RAMconstituting the noise spectrum storage section 285 can be saved bymaking a noise spectrum of one frequency correspond to the input spectraof a plurality of frequencies. As one example is illustrated the RAMcapacity of the noise spectrum storage section 285 at the time ofestimating a noise spectrum of one frequency from the input spectra offour frequencies with FFT of 256 points in this mode used. Inconsideration of the (pseudo) amplitude spectrum being horizontallysymmetrical with respect to the frequency axis, to make estimation forall the frequencies, spectra of 128 frequencies and 128 sustainingnumbers are stored, thus requiring the RAM capacity of a total of 768 Wor 128 (frequencies)×2 (spectrum and sustaining number)×3 (first andsecond candidates for compensation and mean).

When a noise spectrum of one frequency is made to correspond to inputspectra of four frequencies, by contrast, the required RAM capacity is atotal of 192 W or 32 (frequencies)×2 (spectrum and sustaining number)×3(first and second candidates for compensation and mean). In this case,it has been confirmed through experiments that for the above 1×4 case,the performance is hardly deteriorated while the frequency resolution ofthe noise spectrum decreases. Because this means is not for estimationof a noise spectrum from a spectrum of one frequency, it has an effectof preventing the spectrum from being erroneous estimated as a noisespectrum when a normal sound (sine wave, vowel or the like) continuesfor a long period of time.

A description will now be given of a process in the noisecanceling/spectrum compensating section 278.

A result of multiplying the mean noise spectrum, stored in the noisespectrum storage section 285, by the noise cancellation coefficientobtained by the noise cancellation coefficient adjusting section 274 issubtracted from the input spectrum (spectrum difference hereinafter).When the RAM capacity of the noise spectrum storage section 285 is savedas described in the explanation of the noise estimating section 284, aresult of multiplying a mean noise spectrum of a frequency correspondingto the input spectrum by the noise cancellation coefficient issubtracted. When the spectrum difference becomes negative, compensationis carried out by setting a value obtained by multiplying the firstcandidate of the compensation noise spectrum stored in the noisespectrum storage section 285 by the compensation coefficient obtained bythe noise cancellation coefficient adjusting section 274. This isperformed for every frequency. Further, flag data is prepared for eachfrequency so that the frequency by which the spectrum difference hasbeen compensated can be grasped. For example, there is one area for eachfrequency, and 0 is set in case of no compensation, and 1 is set whencompensation has been carried out. This flag data is sent together withthe spectrum difference to the spectrum stabilizing section 279.Furthermore, the total number of the compensated (compensation number)is acquired by checking the values of the flag data, and it is sent tothe spectrum stabilizing section 279 too.

A process in the spectrum stabilizing section 279 will be discussedbelow. This process serves to reduce allophone feeling mainly of asegment which does not contain speeches.

First, the sum of the spectrum differences of the individual frequenciesobtained from the noise canceling/spectrum compensating section 278 iscomputed to obtain two kinds of current frame powers, one for the fullrange and the other for the intermediate range. For the full range, thecurrent frame power is obtained for all the frequencies (called the fullrange; 0 to 128 in this mode). For the intermediate range, the currentframe power is obtained for an perpetually important, intermediate band(called the intermediate range; 16 to 79 in this mode).

Likewise, the sum of the compensation noise spectra for the firstcandidate, stored in the noise spectrum storage section 285, is acquiredas current frame noise power (full range, intermediate range). When thevalues of the compensation numbers obtained from the noisecanceling/spectrum compensating section 278 are checked and aresufficiently large, and when at least one of the following threeconditions is met, the current frame is determined as a noise-onlysegment and a spectrum stabilizing process is performed.

(1) The input power is smaller than the maximum power multiplied by anunvoiced segment detection coefficient.

(2) The current frame power (intermediate range) is smaller than thecurrent frame noise power (intermediate range) multiplied by 5.0.

(3) The input power is smaller than noise reference power.

In a case where no stabilizing process is not conducted, the consecutivenoise number stored in the previous spectrum storage section 286 isdecremented by 1 when it is positive, and the current frame noise power(full range, intermediate range) is set as the previous frame power(full range, intermediate range) and they are stored in the previousspectrum storage section 286 before proceeding to the phase diffusionprocess.

The spectrum stabilizing process will now be discussed. The purpose forthis process is to stabilize the spectrum in an unvoiced segment(speech-less and noise-only segment) and reduce the power. There are twokinds of processes, and a process 1 is performed when the consecutivenoise number is smaller than the number of consecutive noise referenceswhile a process 2 is performed otherwise. The two processes will bedescribed as follow.

(Process 1)

The consecutive noise number stored in the previous spectrum storagesection 286 is incremented by 1, and the current frame noise power (fullrange, intermediate range) is set as the previous frame power (fullrange, intermediate range) and they are stored in the previous spectrumstorage section 286 before proceeding to the phase adjusting process.

(Process 2)

The previous frame power, the previous frame smoothing power and theunvoiced segment power reduction coefficient, stored in the previousspectrum storage section 286, are referred to and are changed accordingto an equation 51.Dd80=Dd80×0.8+A80×0.2×PD80=D80×0.5+Dd80×0.5Dd129=Dd129×0.8+A129×0.2×PD129=D129×0.5+Dd129×0.5  (51)where

Dd80: previous frame smoothing power (intermediate range)

D80: previous frame power (intermediate range)

Dd129: previous frame smoothing power (full range)

D129: previous frame power (full range)

A80: current frame noise power (intermediate range)

A129: current frame noise power (full range).

Then, those powers are reflected on the spectrum differences. Therefore,two coefficients, one to be multiplied in the intermediate range(coefficient 1 hereinafter) and the other to be multiplied in the fullrange (coefficient 2 hereinafter), are computed. First, the coefficient1 is computed from an equation 52.r1=D80/A80 (when A80>0)1.0 (when A80≦0)  (52)where

r1: coefficient 1

D80: previous frame power (intermediate range)

A80: current frame noise power (intermediate range).

As the coefficient 2 is influenced by the coefficient 1, acquisitionmeans becomes slightly complicated. The procedures will be illustratedbelow.

(1) When the previous frame smoothing power (full range) is smaller thanthe previous frame power (intermediate range) or when the current framenoise power (full range) is smaller than the current frame noise power(intermediate range), the flow goes to (2), but goes to (3) otherwise.

(2) The coefficient 2 is set to 0.0, and the previous frame power (fullrange) is set as the previous frame power (intermediate range), then theflow goes to (6).

(3) When the current frame noise power (full range) is equal to thecurrent frame noise power (intermediate range), the flow goes to (4),but goes to (5) otherwise.

(4) The coefficient 2 is set to 1.0, and then the flow goes to (6).

(5) The coefficient 2 is acquired from the following equation 53, andthen the flow goes to (6).r2=(D129−D80)/(A129−A80)  (53)where

r2: coefficient 2

D129: previous frame power (full range)

D80: previous frame power (intermediate range)

A129: current frame noise power (full-range)

A80: current frame noise power (intermediate range).

(6) The computation of the coefficient 2 is terminated.

The coefficients 1 and 2 obtained in the above algorithm always havetheir upper limits clipped to 1.0 and lower limits to the unvoicedsegment power reduction coefficient. A value obtained by multiplying thespectrum difference of the intermediate frequency (16 to 79 in thisexample) by the coefficient 1 is set as a spectrum difference, and avalue obtained by multiplying the spectrum difference of the frequencyexcluding the intermediate range from the full range of that spectrumdifference (0 to 15 and 80 to 128 in this example) by the coefficient 2is set as a spectrum difference. Accordingly, the previous frame power(full range, intermediate range) is converted by the following equation54.D80=A80×r1D129=D80+(A129−A80)×r2  (54)where

r1: coefficient 1

r2: coefficient 2

D80: previous frame power (intermediate range)

A80: current frame noise power (intermediate range)

D129: previous frame power (full range)

A129: current frame noise power (full range).

Various sorts of power data, etc. obtained in this manner are all storedin the previous spectrum storage section 286 and the process 2 is thenterminated.

The spectrum stabilization by the spectrum stabilizing section 279 iscarried out in the above manner.

Next, the phase adjusting process will be explained. While the phase isnot changed in principle in the conventional spectrum subtraction, aprocess of altering the phase at random is executed when the spectrum ofthat frequency is compensated at the time of cancellation. This processenhances the randomness of the remaining noise, yielding such an effectof making is difficult to give a perpetually adverse impression.

First, the random phase counter stored in the random phase storagesection 287 is obtained. Then, the flag, data (indicating thepresence/absence of compensation) of all the frequencies are referredto, and the phase of the complex spectrum obtained by the Fouriertransform section 277 is rotated using the following equation 55 whencompensation has been performed.Bs=Si×Rc−Ti×Rc+1Bt=Si×Rc+1+Ti×RcSi=BsTi=Bt  (55)where

Si, Ti: complex spectrum

i: index indicating the frequency

R: random phase data

c: random phase counter

Bs, Bt: register for computation.

In the equation 55, two random phase data are used in pair. Every timethe process is performed once, the random phase counter is incrementedby 2, and is set to 0 when it reaches the upper limit (16 in this mode).The random phase counter is stored in the random phase storage section287 and the acquired complex spectrum is sent to the inverse Fouriertransform section 280. Further, the total of the spectrum differences(spectrum difference power hereinafter) and it is sent to the spectrumenhancing section 281.

The inverse Fourier transform section 280 constructs a new complexspectrum based on the amplitude of the spectrum difference and the phaseof the complex spectrum, obtained by the spectrum stabilizing section279, and carries out inverse Fourier transform using FFT. (The yieldedsignal is called a first order output signal.) The obtained first orderoutput signal is sent to the spectrum enhancing section 281.

Next, a process in the spectrum enhancing section 281 will be discussed.

First, the mean noise power stored in the noise spectrum storage section285, the spectrum difference power obtained by the spectrum stabilizingsection 279 and the noise reference power, which is constant, arereferred to select an MA enhancement coefficient and AR enhancementcoefficient. The selection is implemented by evaluating the followingtwo conditions.

(Condition 1)

The spectrum difference power is greater than a value obtained bymultiplying the mean noise power, stored in the noise spectrum storagesection 285, by 0.6, and the mean noise power is greater than the noisereference power.

(Condition 2)

The spectrum difference power is greater than the mean noise power.

When the condition 1 is met, this segment is a “voiced segment,” the MAenhancement coefficient is set to an MA enhancement coefficient 1-1, theAR enhancement coefficient is set to an AR enhancement coefficient 1-1,and a high-frequency enhancement coefficient is set to a high-frequencyenhancement coefficient 1. When the condition 1 is not satisfied but thecondition 2 is met, this segment is an “unvoiced segment,” the MAenhancement coefficient is set to an MA enhancement coefficient 1-0, theAR enhancement coefficient is set to an AR enhancement coefficient 1-0,and the high-frequency enhancement coefficient is set to 0. When thecondition 1 is satisfied but the condition 2 is not, this segment is an“unvoiced, noise-only segment,” the MA enhancement coefficient is set toan MA enhancement coefficient 0, the AR enhancement coefficient is setto an AR enhancement coefficient 0, and the high-frequency enhancementcoefficient is set to a high-frequency enhancement coefficient 0.

Using the linear predictive coefficients obtained from the LPC analyzingsection 276, the MA enhancement coefficient and the AR enhancementcoefficient, an MA coefficient AR coefficient of an extreme enhancementfilter are computed based on the following equation 56.α(ma)i=αi×β ¹α(ar)i=αi×γ ¹  (56)where

α(ma)i: MA coefficient

α(ar)i: AR coefficient

αi: linear predictive coefficient

β: MA enhancement coefficient

γ: AR enhancement coefficient

i: number.

Then, the first order output signal acquired by the inverse Fouriertransform section 280 is put through the extreme enhancement filterusing the MA coefficient and AR coefficient. The transfer function ofthis filter is given by the following equation 57. $\begin{matrix}\frac{1 + {{\alpha({ma})}_{1} \times Z^{- 1}} + {{\alpha({ma})}_{2} \times Z^{- 2}} + \ldots\quad + {{\alpha({ma})}_{j} \times Z^{- j}}}{1 + {{\alpha({ar})}_{1} \times Z^{- 1}} + {{\alpha({ar})}_{2} \times Z^{- 2}} + \ldots\quad + {{\alpha({ar})}_{j} \times Z^{- j}}} & (57)\end{matrix}$where

α(ma)₁: MA coefficient

α(ar)₁: AR coefficient

j: order.

Further, to enhance the high frequency component, high-frequencyenhancement filtering is performed by using the high-frequencyenhancement coefficient. The transfer function of this filter is givenby the following equation 58.1−δZ ⁻¹  (58)where δ: high-frequency enhancement coefficient.

A signal obtained through the above process is called a second orderoutput signal. The filter status is saved in the spectrum enhancingsection 281.

Finally, the waveform matching section 282 makes the second order outputsignal, obtained by the spectrum enhancing section 281, and the signalstored in the previous waveform storage section 288, overlap one on theother with a triangular window. Further, data of this output signal bythe length of the last pre-read data is stored in the previous waveformstorage section 288. A matching scheme at this time is shown by thefollowing equation 59.O _(j)(j×D _(j)+(L−j)×Z _(j))/L (j=0˜L−1)O _(j) =D _(j) (j=L˜L÷M−1)Z _(j) =O _(M+j) (j=0˜L−1)  (59)where

O_(j): output signal

D_(j): second order output signal

Z_(j): output signal

L: pre-read data length

M: frame length.

It is to be noted that while data of the pre-read data length+framelength is output as the output signal, that of the output signal whichcan be handled as a signal is only a segment of the frame length fromthe beginning of the data. This is because, later data of the pre-readdata length will be rewritten when the next output signal is output.Because continuity is compensated in the entire segments of the outputsignal, however, the data can be used in frequency analysis, such as LPCanalysis or filter analysis.

According to this mode, noise spectrum estimation can be conducted for asegment outside a voiced segment as well as in a voiced segment, so thata noise spectrum can be estimated even when it is not clear at whichtiming a speech is present in data.

It is possible to enhance the characteristic of the input spectrumenvelope with the linear predictive coefficients, and to possible toprevent degradation of the sound quality even when the noise level ishigh.

Further, using the mean spectrum of noise can cancel the noise spectrummore significantly. Further, separate estimation of the compensationspectrum can ensure more accurate compensation.

It is possible to smooth a spectrum in a noise-only segment where nospeech is contained, and the spectrum in this segment can preventallophone feeling from being caused by an extreme spectrum variationwhich is originated from noise cancellation.

The phase of the compensated frequency component can be given a randomproperty, so that noise remaining uncancelled can be converted to noisewhich gives less perpetual allophone feeling.

The proper weighting can perpetually be given in a voiced segment, andperpetual-weighting originating allophone feeling can be suppressed inan unvoiced segment or an unvoiced syllable segment.

INDUSTRIAL APPLICABILITY

As apparent from the above, an excitation vector generator, a speechcoder and speech decoder according to this invention are effective insearching for excitation vectors and are suitable for improving thespeech quality.

1. An excitation vector generator, comprising: an input vector providerconfigured to provide an input vector having at least one pulse, eachpulse having a pre-determined position and a respective polarity; and anarranger configured to arrange a waveform in accordance with theposition and the polarity of the pulse, wherein a shape of the waveformcomprises a pulse-like shape and a length of the waveform is shorterthan a length of a sub-frame.
 2. The excitation vector generator ofclaim 1, wherein the input vector is provided from an algebraic codebooktable.
 3. A method of generating an excitation vector used in a speechencoder or decoder, the method comprising: providing an input vector,having at least one pulse, each pulse having a pre-determined positionand a respective polarity; and arranging a waveform in accordance withthe position and the polarity of the pulse, wherein a shape of thewaveform comprises a pulse-like shape and a length of the waveform isshorter than a length of a sub-frame.
 4. The method of generating anexcitation vector used in a speech encoder or decoder according to claim3, wherein the input vector is provided from an algebraic codebooktable.